Java Calendar类使用总结及使用实例
平时在浏览一些网站时,有些网站会显示出当前时间,如现在是xx年xx月xx日xx时xx分xx秒,在实际的开发过程中,也会涉及到日期和时间的计算,Java中提供了一个专门的类Calendar来处理日期与时间。
接下来就讲解下Calendar类的使用场景及使用方法。
1.获取Calendar实例
首先,我们看下Calendar类的定义
publicabstractclassCalendarimplementsSerializable,Cloneable,Comparable
因为被定义为abstract,所以我们无法通过new来创建Calendar类的实例,不过Calendar类提供了一个类方法getInstance()来返回Calendar的实例。
publicstaticCalendargetInstance() { returncreateCalendar(TimeZone.getDefault(),Locale.getDefault(Locale.Category.FORMAT)); }
由此,获取Calendar实例的代码如下所示:
Calendarcalendar=Calendar.getInstance();
2.获取当前时间
packagecom.zwwhnly.springbootdemo; importjava.util.Calendar; publicclassCalendarDemo{ publicstaticvoidmain(String[]args){ Calendarcalendar=Calendar.getInstance(); intyear=calendar.get(Calendar.YEAR); //月份的下标是从0开始的,即0~11分别代表1~12月,因此需要+1 intmonth=calendar.get(Calendar.MONTH)+1; intday=calendar.get(Calendar.DAY_OF_MONTH); inthour=calendar.get(Calendar.HOUR_OF_DAY);//24小时制 intminute=calendar.get(Calendar.MINUTE); intsecond=calendar.get(Calendar.SECOND); System.out.println("现在是:"+year+"年"+month+"月"+day+"日"+hour+"时"+minute+"分"+second+"秒"); } }
运行结果:
现在是:2019年2月21日15时36分38秒
注意:月份的下标是从0开始的,即0~11分别代表1~12月
3.设置时间
假设我们现在需要将时间设置为2019-02-2123:59:59
3.1(一起设置):
Calendarcalendar=Calendar.getInstance(); calendar.set(2019,Calendar.FEBRUARY,21,23,59,59); System.out.println(calendar.getTime());
3.2(分别设置):
Calendarcalendar=Calendar.getInstance(); calendar.set(Calendar.YEAR,2019); calendar.set(Calendar.MONTH,Calendar.FEBRUARY); calendar.set(Calendar.DAY_OF_MONTH,21); calendar.set(Calendar.HOUR_OF_DAY,23); calendar.set(Calendar.MINUTE,59); calendar.set(Calendar.SECOND,59); System.out.println(calendar.getTime());
3.1和3.2的运行结果都如下所示:
ThuFeb2123:59:59CST2019
4.时间计算
4.1增加秒
我们在3.1的基础上增加1秒,那么时间应该是2019-02-2200:00:00
publicstaticvoidmain(String[]args){ Calendarcalendar=Calendar.getInstance(); calendar.set(2019,Calendar.FEBRUARY,21,23,59,59); calendar.add(Calendar.SECOND,1); System.out.println(calendar.getTime()); }
运行结果:
FriFeb2200:00:00CST2019
4.2增加月
首先我们将时间设置为2019-01-31,然后先增加1个月,再增加2个月
Calendarcalendar=Calendar.getInstance(); calendar.set(2019,Calendar.JANUARY,31); System.out.println(calendar.getTime()); calendar.add(Calendar.MONTH,1); System.out.println(calendar.getTime()); calendar.add(Calendar.MONTH,2); System.out.println(calendar.getTime());
运行结果:
ThuJan3115:58:03CST2019
ThuFeb2815:58:03CST2019
SunApr2815:58:03CST2019
注意事项:当所在的月份没有那个日期时,如2月份没有31号,返回的是所在月的最后一天(2月28号)
5.扩展:获取某月的第一天和最后一天
packagecom.zwwhnly.springbootdemo; importjava.text.SimpleDateFormat; importjava.util.Calendar; publicclassCalendarDemo{ publicstaticvoidmain(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)); } publicstaticStringgetLastDayOfMonth(intyear,intmonth){ Calendarcalendar=Calendar.getInstance(); calendar.set(Calendar.YEAR,year); calendar.set(Calendar.MONTH,month-1); calendar.set(Calendar.DAY_OF_MONTH,calendar.getActualMaximum(Calendar.DATE)); returnnewSimpleDateFormat("yyyy-MM-dd").format(calendar.getTime()); } publicstaticStringgetFirstDayOfMonth(intyear,intmonth){ Calendarcalendar=Calendar.getInstance(); calendar.set(Calendar.YEAR,year); calendar.set(Calendar.MONTH,month-1); calendar.set(Calendar.DAY_OF_MONTH,calendar.getMinimum(Calendar.DATE)); returnnewSimpleDateFormat("yyyy-MM-dd").format(calendar.getTime()); } }
运行结果:
2019-02-01
2019-02-28
2019-03-01
2019-03-31
6.参考链接
Java中Calendar类的常用方法
JavaCalendar类的使用总结
java时间类Date、Calendar及用法
以上所述是小编给大家介绍的JavaCalendar类使用总结及使用实例详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。