0
点赞
收藏
分享

微信扫一扫

JDK8 日期API

止止_8fc8 2022-02-19 阅读 62
java

一. 为什么要使用JDK8的新版日期API

1. 日期差值问题

1). 使用老版本的Date来计算两个日期之间相差的天数:

将两个日期转换成毫秒数(Date的getTime()方法返回的是对应日期距离1970.01.01的毫秒值),相减之后,将差值再转换成“天”的单位。

2). 使用新版本的日期API来计算两个日期之间相差的天数:

ChronoUnit.DAYS.between方法。

发现使用老版本的API存在计算误差。

2.线程安全问题

SimpleDateFormater是线程不安全的,因为它有一个成员变量Calendar calendar.

二. Date-Time API中的基本类使用

1. 常用类

(1)Instant:

Instant类对事件轴上的单一瞬时点建模,可以用于记录应用程序中的事件时间戳,在日期类型转换中,可以使用该类作为中间类来完成类型转换。

(2)Duration:

Duration类表示秒或者纳秒时间间隔,适合处理时间间隔短,但需要较高精确度的时间间隔计算。

(3)Period:

Period类表示一段时间的年、月、日。

(4)LocalDate:

LocalDate类是一个不可变的日期时间对象,表示日期,通常被视为年月日。

(5)LocalTime:

LocalTime是一个不可变的日期时间对象,表示时间,通常被看作是时分秒,精确到纳秒。

(6)LocalDateTime:

LocalDateTime是一个不可变的日期时间对象,表示日期时间,通常视为年月日时分秒。

(7)ZonedDateTime:

ZonedDateTime是一个不可变的、具有时区的日期时间对象,此类存储所有日期和时间字段,精确到纳秒,时区为区域偏移量,用于处理模糊的本地日期时间。

2. now方法

举报

相关推荐

0 条评论