目录
前言
闲来无聊,看几个和Java.time有关的类.
TimeUnit
在几个月以前,我还记得以前学java的时候的教诲,当需要写一个小时的秒数的时候,不要写int seconds = 3600;
,而是要int seconds = 1 * 60 * 60
;因为这样可以更加清楚的表达一个小时的秒数
这个概念,殊不知,早已经不用这么做了.
在1.5之后的版本中,java.util.concurrent包中提供了TimeUnit
这个类,可以方便的进行时间的转换.
它是一个枚举类,包含天,小时,分钟,秒,毫秒,微秒,纳秒
等几个实例,且每个实例都有转换到其他实例的方法.使用示例如下.
1 |
|
Period
要用基于日期的值(年、月、日)来定义大量的时间,使用周期类。周期类提供了各种 get 方法, 例如 getMonths, getDays 和 getYears,这样您就可以从周期中提取出时间的数量。
如果想获得这段时间的某个时间单元的总数,可以使用ChronoUnit.between()
.
使用示例如下:(假设你的生日为1990年2月3号,我们来计算这个人的年龄)
1 | public static void testPeriod() { |
总之,当你想要获取某个日期离现在的总天/月/年数,可以使用ChronoUnit.between()
,当你想要获取某个日期离现在的日,月,年
可以使用Period
Duration
Duration
比较适合短时间(一天内),高精度的时间间隔计算.
1 |
|
总结
- Duration : 可被转换为天,小时,分钟,秒,毫秒,纳秒
- Period :可被转换为年,月,天
- ChronoUnit:可以测量两个时间之间的间隔时间,并且转换为各种时间单元.
- TimeUnit: 可以做各个时间单元之间的数量转换,比如2小时是多少秒.这种需求.
完.
完。
ChangeLog
2019-05-19 完成以上皆为个人所思所得,如有错误欢迎评论区指正。
欢迎转载,烦请署名并保留原文链接。
更多学习笔记见个人博客——>呼延十