前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >时间操作类与日历类

时间操作类与日历类

作者头像
端碗吹水
发布2020-09-23 10:33:31
8380
发布2020-09-23 10:33:31
举报
文章被收录于专栏:程序猿的大杂烩

关于时间的类:

java.util.Date  日期操作类

java.util.Calendar  日历类

java.util.Locale 区域类,用于描述区域

java.text.DateFormat  日期格式类

java.text.SimpleDateFormat  日期格式类

唯一能获得系统时间的方式:

System.currentTimeMillis();

只有这个方法才能获得系统时间,需要用长整long类型去得到,因为得到的时间单位是毫秒,所以这个数字比较大需要用long来接收。例如:

0b243be5dbf22a71eda2b213d81a95c7.png
0b243be5dbf22a71eda2b213d81a95c7.png

运行结果:

9bc76467b1de54353b81134bf4a01d50.png
9bc76467b1de54353b81134bf4a01d50.png

可以使用这个方法来简单的测试一下一个程序的运行时间,例如测试一个循环:

610d54f75f97826c8619ed8ac9385624.png
610d54f75f97826c8619ed8ac9385624.png

运行结果:

b313813e10e1776ee0ea6c165e49d386.png
b313813e10e1776ee0ea6c165e49d386.png

循环十亿次的赋值也只需要两毫秒(1000毫秒=1秒)的时间,可见计算机的速度是相当快的。

时间操作类Date:

用这个类构建出对象,使用这个对象可以得到当前的年月日时分秒。例如:

e28c4fba03b70eef06ab59430e850a5b.png
e28c4fba03b70eef06ab59430e850a5b.png
c89dbf906cb4435e026800fa05574c81.png-wh_
c89dbf906cb4435e026800fa05574c81.png-wh_

  可以使用Date类结合System.currentTimeMillis();方法计算出距离一个特定的时间时间还有多久,例如计算一下当前时间距离2017年的11月11日还差多少天:

668b45c78598e15c0f7ef1a43fbc7a32.png
668b45c78598e15c0f7ef1a43fbc7a32.png
07e075114499b8bd1d3447b0b0c2f57f.png
07e075114499b8bd1d3447b0b0c2f57f.png

可以直接设置Date的时间,因为年份是从1900年开始的,所以需要减去1900,月份是从0开始的,所以需要减去1,其他则不需要。

time1需要除是因为,它得到的是毫秒单位,所以除1000表示秒(1000毫秒一秒),接着除60表示分钟(60秒一分钟),再除60表示小时(60分钟一小时),除24表示天(24小时一天)。

利用乘法打印三天后的时间格式,使用toString方式打印的是原格式,使用toLacaleString打印的是当前的区域时间格式,例如:

0538fb8321dcdcaac0e38905b435e045.png
0538fb8321dcdcaac0e38905b435e045.png
23647145d42e9eef768000a91ce92182.png
23647145d42e9eef768000a91ce92182.png

日历类Calendar:

Calendar是日历类,是一个抽象类,需要用方法才能得到这个类的对象,例如:

2a4431fabf10585f0fd1aed4a9c2544f.png
2a4431fabf10585f0fd1aed4a9c2544f.png

  得到对象之后可以使用这个对象得到年月日时分秒,与Date类的区别就是在年上不需要减1900,月份上是加1,其他则一样,代码示例:

9463668b45461b9be224b3748d0bba43.png
9463668b45461b9be224b3748d0bba43.png
93133179cf10c80d4e60e70490a01c83.png
93133179cf10c80d4e60e70490a01c83.png

  使用日历类可以获得现在的日期是这个月第几个星期,当前日期是星期几,在一年中现在的日期是第几天,当前日期在一年内是第几个星期等等,例如:

f4439d3f19bacbb5dece95f75feb3e08.png
f4439d3f19bacbb5dece95f75feb3e08.png

运行结果:

35f7439beaebf1ec72b63f62a5806ea6.png
35f7439beaebf1ec72b63f62a5806ea6.png

日历类里的set方法可以自定义日期,使用getActualMaximum();方法可以得到这个月的最大天数,例如:

809a86553a405ccb74bc0031f4ad7940.png
809a86553a405ccb74bc0031f4ad7940.png

运行结果:

999d840aa4aaffdd9144d2a33fa9d2a9.png
999d840aa4aaffdd9144d2a33fa9d2a9.png
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017/10/26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档