
Java 8 时间和日期 API
今天我们说说 Java 8 新的时间 API,由于之前的api并不理想也存在问题。所以出现了一套全新的日期API,在java.time路径下。
LocalDate
LocalDate类型包含了年月日信息,下面举些LocalDate的使用示例:
除了调用LocalDate的getYear方法外,我们也可以使用ChronoField枚举类型来实现相同的功能:
ChronoField枚举类型包含了诸多的属性可供选择:
1562240029916
修改 LocalDate 对象
TemporalAdjusters类提供了许多静态方法来修改LocalDate对象。当我们需要获取下一个周天,下一个工作日,本月的最后一天等信息时,TemporalAdjusters类便可派上用场:
LocalDate和下面要介绍的LocalTime,LocalDateTime之间共享了许多类似的方法,上面介绍的LocalDate修改、格式化等方法通用适用于LocalTime和LocalDateTime。
LocalTime
LocalTime和LocalDate类似,区别在于LocalTime包含的是时分秒(毫秒)信息。举些LocalTime的例子:
LocalDate和LocalTime都可以通过字符串来创建:
LocalDateTime
LocalDateTime是LocalDate和LocalTime的组合形式,包含了年月日时分秒信息。举些LocalDateTime的使用示例:
LocalDateTime可以转换为LocalDate和LocalTime,转换后包含的信息减少了:
Duration
Duration用于计算两个LocalTime或者LocalDateTime的时间差,例如:
time1和time2之间相差了13565秒。
手动创建Duration对象:
Period
Period用于计算两个LocalDate之间的时长。举些例子:
2018-04-21和2018-04-20之间月份相差1,天数相差1。
同样的,我们也可以手动创建Period对象:
比较两个时间的先后
MonthDay 使用
MonthDay只包含月日信息,可以用于存放类似于生日,结婚纪念日等信息。举个使用MonthDay的例子:
假如用户的生日是1999年9月9号,那么可以通过这种方法来判断今天是否是用户的生日,如果是的话便发送生日祝福。同样的也有YearMonth类,只包含 年月信息。就不啰嗦了。
文章转载自公众号:码哥字节
