DESKTOP-LODEUIH_20200902-罗祥
日志
问题
问题:java.util.Date <>java.time.ZonedDateTime <> java.time.LocalDateTime怎么转?
来源:早上的练习题
解决:
一,java.util.Date ==>java.time.ZonedDateTime ==> java.time.LocalDateTime
public static void main(String[] args) {
Date date = new Date();
// 从 Java 8 开始,java.util.Date类新增了toInstant方法
Instant instant = date.toInstant() ;
ZoneId zone = ZoneId.systemDefault(); // 根据OS确定的时区
ZonedDateTime zdt = instant.atZone( zone );
LocalDateTime datetime = zdt.toLocalDateTime() ;
// LocalDateTime = LocalDate + LocalTime
}
二,java.time.LocalDateTime ==> java.time.ZonedDateTime ==> java.util.Date
public static void main(String[] args) {
LocalDate localDate = LocalDate.now();
LocalTime localTime = LocalTime.now();
LocalDateTime datetime = LocalDateTime.of( localDate , localTime );
System.out.println( "LocalDateTime[ " + datetime + " ]");
ZoneId zone = ZoneId.systemDefault(); // 根据OS确定的时区
ZonedDateTime zdt = datetime.atZone( zone );
Instant instant = zdt.toInstant() ;
// 从 Java 8 开始 java.util.Date类新增了 from(Instant)方法(类方法)
Date date = Date.from( instant ) ;
System.out.println( "Date[ " + date + " ]");
}
吐槽
是我写的慢了,还是时间过得快了,笔记都没写写完,就九点了。唉!
近期评论