关于Calendar add

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Calendar add相关的知识,希望对你有一定的参考价值。

calendar.add(Calendar.HOUR_OF_DAY,-1.5);
要怎样才能减一个半小时?
因为数据库里调过来的是时差,一个半小时就是1.5,我不想再计算一次,可不可以直接就能减一个半小时?

方法只支持int,那就再分钟上做吧

c.add(Calendar.MINUTE, -90);
一个半小时

参考技术A 把小时换算成分钟啊兄嘚.

关于Calendar的常用方法练习

 

  1 import java.text.ParseException;
  2 import java.text.SimpleDateFormat;
  3 import java.util.Calendar;
  4 import java.util.Date;
  5 
  6     
  7 public class DateUtil {
  8     static Calendar ca = Calendar.getInstance();
  9     /**
 10      *1 将Date转换为String
 11      * @return
 12      */
 13     public static void getDateToString(){
 14         Date a = new Date();
 15         SimpleDateFormat sdf = new SimpleDateFormat("y-M-d");
 16         String str = sdf.format(a); 
 17         System.err.println(str);
 18     }
 19     /**
 20      *2 将String日期转换为Date
 21      * @param str
 22      * @return
 23      */
 24     public static Date getStringToDate(String str){
 25         SimpleDateFormat sdf = new SimpleDateFormat("y-M-d");
 26         Date date=null;
 27         try {
 28             date = sdf.parse(str);
 29         } catch (ParseException e) {
 30             // TODO Auto-generated catch block
 31             e.printStackTrace();
 32         } finally{
 33         System.err.println(date);
 34         return date;
 35         }
 36     }
 37     /**
 38      *3 计算该月份最多有多少天
 39      * @param year
 40      * @param month
 41      * @return
 42      */
 43     public static int getMaximumDay(int year,int month){
 44         Date now = new Date();
 45         
 46          ca.clear();
 47          ca.set(Calendar.YEAR,year);
 48          ca.set(Calendar.MONTH,month-1);
 49          //ca.set(Calendar.DATE,day);
 50         int a = ca.getActualMaximum(Calendar.DAY_OF_MONTH);
 51         System.out.println(a);
 52         return a ;
 53     }
 54     /**
 55      *4 指定日期计算这是当年第几天第几星期
 56      * 
 57      * @param str
 58      */
 59     public static void setDate(String str) {
 60         SimpleDateFormat sdf = new SimpleDateFormat("y-M-d");
 61         Date date = null;
 62         try {
 63             date = sdf.parse(str);
 64             ca.clear();
 65             ca.setTime(date);
 66             int a = ca.get(Calendar.DAY_OF_YEAR);
 67             int b = ca.get(Calendar.WEEK_OF_YEAR);
 68             System.err.println("此日期为当年的第"+a+"天"+"第"+b+"周");
 69 
 70         } catch (ParseException e) {
 71             // TODO Auto-generated catch block
 72             e.printStackTrace();
 73         }
 74     }
 75     /**
 76      *5 计算一年中第几个星期天是几号:
 77      * @param args
 78      */
 79     public static void getDate(int year,int week){
 80         ca.clear();
 81         ca.set(Calendar.YEAR, year);
 82         ca.set(Calendar.WEEK_OF_YEAR, week);
 83         ca.set(Calendar.DAY_OF_WEEK,Calendar.SUNDAY);
 84         SimpleDateFormat sdf = new  SimpleDateFormat();
 85         int m = ca.get(Calendar.DAY_OF_MONTH);
 86         int n = ca.get(Calendar.MONTH);
 87         System.out.println(sdf.format(ca.getTime()));
 88     }
 89     /**
 90      *6 将日历转换为日期
 91      */
 92     public static void getCalendarToDate(){
 93         ca.getTime();
 94         System.out.println(ca.getTime());
 95     }
 96     /**
 97      *7 将日期转换为日历
 98      */
 99     public static void getDateToCalendar(){
100         Date now = new Date();
101         ca.setTime(now);
102         ca.getCalendarType();
103         System.out.println(ca);
104       //  System.out.println(ca.getCalendarType());
105     }
106     /**
107      *8 计算两个日期相隔多少天
108      * @param date1
109      * @param date2
110      */
111     public static void getDays(String date1,String date2){
112         ca.setTime(getStringToDate(date1));
113         int a1 = ca.get(Calendar.DAY_OF_YEAR);
114         ca.setTime(getStringToDate(date2));
115         int a2 = ca.get(Calendar.DAY_OF_YEAR);
116         System.err.println("同年两个日期的相隔的天数为:"+Math.abs(a2-a1));
117     }
    
118 public static void main(String[] args) { 119 // TODO Auto-generated method stub 120 // getDateToString(); //1,将Date的日期转化为String的形式返回 121 // getStringToDate("2018-09-12");//2.将String类型转成 122 // getMaximumDay(2017,2);//3.指定年份和月份,计算该月份最大有多少天Date类型 123 // setDate("2018-09-26");//4.指定日期,计算该天是当年第多少天,多个个星期 124 // getDate(2018,2);//5.计算一年中的第几星期天是几号 125 // getDateToCalendar();//6.Date类型转成Calendar 126 // getCalendarToDate();//7.Calendar类型转成Date 127 // getDays("2018-08-01","2018-09-1");//8.计算两个同一年的时间中间相隔的天数 128 } 129 130 }

 


以上是关于关于Calendar add的主要内容,如果未能解决你的问题,请参考以下文章

关于Calendar的常用方法练习

关于Calendar类使用中遇到的一些问题

关于Calendar的一些用法总结

关于获取某月某日最后一天时Calendar的cal.getActualMaximum(Calendar.DAY_OF_MONTH)的吐槽

关于时间,日期,星期,月份的算法(Java中Calendar的使用方法)

关于Calendar的使用,谁能教教我?