Java 8 LocalDate 和 LocalDateTime 对象

Date 和 LocalDate 对象不能相互精确比较,因为 Date 对象表示特定的日期和日期,而 LocalDate 对象不包含有关时间或者时区的信息。
然而,如果我们只考虑实际日期信息而不考虑时间信息,则在两者之间切换会很有帮助。

创建一个本地日期

//创建默认日期
LocalDate lDate = LocalDate.now();
//从值创建日期
lDate = LocalDate.of(2015, 12, 15);
//从字符串创建日期
lDate = LocalDate.parse("2015-12-15");
//从时区创建日期
LocalDate.now(ZoneId.systemDefault());

创建一个 LocalDateTime

//创建默认日期时间
LocalDateTime lDateTime = LocalDateTime.now();
//从值创建默认日期时间
lDateTime = LocalDateTime.of(2015, 12, 15, 11, 30);
//从字符串创建默认日期时间
lDateTime = LocalDateTime.parse("2015-12-05T11:30:30");
//从时区创建默认日期时间
LocalDateTime.now(ZoneId.systemDefault());

LocalDate 转换为 Date ,或者 Date 转换为 LocalDate

Date date = Date.from(Instant.now());
ZoneId defaultZoneId = ZoneId.systemDefault();
//Date to LocalDate
LocalDate localDate = date.toInstant().atZone(defaultZoneId).toLocalDate();
//LocalDate to Date
Date.from(localDate.atStartOfDay(defaultZoneId).toInstant());

LocalDateTime 转换为 Date ,或者 Date 转换为 LocalDateTime

Date date = Date.from(Instant.now());
ZoneId defaultZoneId = ZoneId.systemDefault();
//Date to LocalDateTime
LocalDateTime localDateTime = date.toInstant().atZone(defaultZoneId).toLocalDateTime();
//LocalDateTime to Date
Date out = Date.from(localDateTime.atZone(defaultZoneId).toInstant());
日期:2020-06-02 22:15:22 来源:oir作者:oir