Java日历类使用总结及使用实例

  

平时在浏览一些网站时,有些网站会显示出当前时间,如现在是xx年xx月xx日xx时xx分xx秒,在实际的开发过程中,也会涉及到日期和时间的计算,Java中提供了一个专门的日历类来处理日期与时间。
  接下来就讲解下日历类的使用场景及使用方法。

  

  

首先,我们看下日历类的定义

        公共日历抽象类实现了Serializable,可克隆,Comparable      

因为被定义为抽象的,所以我们无法通过新来创建日历类的实例,不过日历类提供了一个类方法getInstance()来返回日历的实例。

        日历公共静态getInstance ()   {   返回createCalendar (TimeZone.getDefault (), Locale.getDefault (Locale.Category.FORMAT));   }      

由此,获取日历实例的代码如下所示:

        日历日历=Calendar.getInstance ();      


  

        包com.zwwhnly.springbootdemo;      进口java.util.Calendar;      公开课CalendarDemo {   公共静态void main (String [] args) {   日历日历=Calendar.getInstance ();      int年=calendar.get (Calendar.YEAR);//月份的下标是从0开始的,即0 ~ 11分别代表1 ~ 12个月,因此需要+ 1   int月=calendar.get (Calendar.MONTH) + 1;   int天=calendar.get (Calendar.DAY_OF_MONTH);   int小时=calendar.get (Calendar.HOUR_OF_DAY);//24小时制   int分钟=calendar.get (Calendar.MINUTE);   int二=calendar.get (Calendar.SECOND);      system . out。println(“现在是:“+ +年+“年”+月“日”“月”+ + +小时+“时”+分钟+“分”+第二+“秒”);   }   }      之前      

运行结果:

  
  

现在是:2019年2月21日15时36分38秒

     

注意:月份的下标是从0开始的,即0 ~ 11分别代表1 ~ 12月

  


  假设我们现在需要将时间设置为2019-02-21 23:59:59

  

<强> 3.1(一起设置):

        日历日历=Calendar.getInstance ();   日历。集(2019年日历。2月21日,23日,59岁的59);      System.out.println (calendar.getTime ());   之前      

<强> 3.2(分别设置):

        日历日历=Calendar.getInstance ();   calendar.set(日历。年,2019);   calendar.set(日历。月,Calendar.FEBRUARY);   calendar.set(日历。DAY_OF_MONTH 21);   calendar.set(日历。HOUR_OF_DAY 23);   calendar.set(日历。分钟,59);   calendar.set(日历。第二,59);      System.out.println (calendar.getTime ());   之前      

3.1和3.2的运行结果都如下所示:

  
  

清华2019年2月21日23:59:59 CST

     

,
  

  

<强> 4.1增加秒

  

我们在3.1的基础上增加1秒,那么时间应该是2019-02-22就是

        公共静态void main (String [] args) {   日历日历=Calendar.getInstance ();   日历。集(2019年日历。2月21日,23日,59岁的59);   calendar.add(日历。第二,1);   System.out.println (calendar.getTime ());   }      

运行结果:

  
  

星期五2019年2月22日就是CST

     

<强> 4.2增加月

  

首先我们将时间设置为2019-01-31,然后先增加1个月,再增加2个月

        日历日历=Calendar.getInstance ();      日历。集(2019年日历。1月31日);   System.out.println (calendar.getTime ());   calendar.add(日历。月,1);   System.out.println (calendar.getTime ());   calendar.add(日历。月,2);   System.out.println (calendar.getTime ());      之前      

运行结果:

  
  

清华2019年1月31日15:58:03 CST
  清华2019年2月28日15:58:03 CST
  太阳2019年4月28日15:58:03 CST

     

注意事项:当所在的月份没有那个日期时,如2月份没有31号,返回的是所在月的最后一天(2月28号)

  


  

        包com.zwwhnly.springbootdemo;      进口java.text.SimpleDateFormat;   进口java.util.Calendar;      公开课CalendarDemo {   公共静态void main (String [] args) {   system . out。println (getFirstDayOfMonth (2019 2));   system . out。println (getLastDayOfMonth (2019 2));      system . out。println (getFirstDayOfMonth (2019 3));   system . out。println (getLastDayOfMonth (2019 3));   }      公共静态字符串getLastDayOfMonth (int, int) {   日历日历=Calendar.getInstance ();   calendar.set(日历。年,一年);   calendar.set(日历。月,月- 1);   calendar.set(日历。DAY_OF_MONTH calendar.getActualMaximum (Calendar.DATE));      返回新SimpleDateFormat (yyyy-MM-dd) .format (calendar.getTime ());   }      公共静态字符串getFirstDayOfMonth (int, int) {   日历日历=Calendar.getInstance ();   calendar.set(日历。年,一年);   calendar.set(日历。月,月- 1);   calendar.set(日历。DAY_OF_MONTH calendar.getMinimum (Calendar.DATE));      返回新SimpleDateFormat (yyyy-MM-dd) .format (calendar.getTime ());   }   }      

Java日历类使用总结及使用实例