欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

Java 8 中 Date与LocalDateTime、LocalDate、LocalTime互转

发布时间:2024/9/30 51 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Java 8 中 Date与LocalDateTime、LocalDate、LocalTime互转 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

Java 8中 java.util.Date 类新增了两个方法,分别是from(Instant instant)和toInstant()方法

// Obtains an instance of Date from an Instant object. public static Date from(Instant instant) {try {return new Date(instant.toEpochMilli());} catch (ArithmeticException ex) {throw new IllegalArgumentException(ex);} }// Converts this Date object to an Instant. public Instant toInstant() {return Instant.ofEpochMilli(getTime()); }

这两个方法使我们可以方便的实现将旧的日期类转换为新的日期类,具体思路都是通过Instant当中介,然后通过Instant来创建LocalDateTime(这个类可以很容易获取LocalDate和LocalTime),新的日期类转旧的也是如此,将新的先转成LocalDateTime,然后获取Instant,接着转成Date,具体实现细节如下:

// 01. java.util.Date --> java.time.LocalDateTime public void UDateToLocalDateTime() {java.util.Date date = new java.util.Date();Instant instant = date.toInstant();ZoneId zone = ZoneId.systemDefault();LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone); }// 02. java.util.Date --> java.time.LocalDate public void UDateToLocalDate() {java.util.Date date = new java.util.Date();Instant instant = date.toInstant();ZoneId zone = ZoneId.systemDefault();LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone);LocalDate localDate = localDateTime.toLocalDate(); }// 03. java.util.Date --> java.time.LocalTime public void UDateToLocalTime() {java.util.Date date = new java.util.Date();Instant instant = date.toInstant();ZoneId zone = ZoneId.systemDefault();LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone);LocalTime localTime = localDateTime.toLocalTime(); }// 04. java.time.LocalDateTime --> java.util.Date public void LocalDateTimeToUdate() {LocalDateTime localDateTime = LocalDateTime.now();ZoneId zone = ZoneId.systemDefault();Instant instant = localDateTime.atZone(zone).toInstant();java.util.Date date = Date.from(instant); }// 05. java.time.LocalDate --> java.util.Date public void LocalDateToUdate() {LocalDate localDate = LocalDate.now();ZoneId zone = ZoneId.systemDefault();Instant instant = localDate.atStartOfDay().atZone(zone).toInstant();java.util.Date date = Date.from(instant); }// 06. java.time.LocalTime --> java.util.Date public void LocalTimeToUdate() {LocalTime localTime = LocalTime.now();LocalDate localDate = LocalDate.now();LocalDateTime localDateTime = LocalDateTime.of(localDate, localTime);ZoneId zone = ZoneId.systemDefault();Instant instant = localDateTime.atZone(zone).toInstant();java.util.Date date = Date.from(instant); }

转载自:https://www.cnblogs.com/exmyth/p/6425878.html

总结

以上是生活随笔为你收集整理的Java 8 中 Date与LocalDateTime、LocalDate、LocalTime互转的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。