一.在Java 8中將Date轉換為LocalDateTime
方法1:
將Date轉換為LocalDatetime,我們可以使用以下方法:
1.從日期獲取ZonedDateTime並使用其方法toLocalDateTime()獲取LocalDateTime
2.使用LocalDateTime的Instant()工廠方法
示例:
package insping;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Date;
public class Test {
public static void main(String[] args) {
Date date = new Date();
Instant instant = date.toInstant();
ZoneId zoneId = ZoneId.systemDefault();
LocalDateTime localDateTime = instant.atZone(zoneId).toLocalDateTime();
System.out.println("Date = " + date);
System.out.println("LocalDateTime = " + localDateTime);
}
}
結果:
Date = Fri Jun 16 15:35:26 CST 2017
LocalDateTime = 2017-06-16T15:35:26.970
方法2:
我們也可以使用LocalDateTime的FactoryInput()方法使用系統的默認時區。
LocalDateTime localDateTime = LocalDateTime.ofInstant(date.toInstant(), zoneId);
二.在Java 8中將LocalDateTime轉換為Date
要將LocalDateTime轉換回java.util.Date,我們可以使用以下步驟:
1.使用atZone()方法將LocalDateTime轉換為ZonedDateTime
2.將ZonedDateTime轉換為Instant,並從中獲取Date
示例:
package insping;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Date;
public class Test {
public static void main(String[] args) {
ZoneId zoneId = ZoneId.systemDefault();
LocalDateTime localDateTime = LocalDateTime.now();
ZonedDateTime zdt = localDateTime.atZone(zoneId);
Date date = Date.from(zdt.toInstant());
System.out.println("LocalDateTime = " + localDateTime);
System.out.println("Date = " + date);
}
}
結果:
LocalDateTime = 2017-06-16T15:38:48.580
Date = Fri Jun 16 15:38:48 CST 2017
原文地址:https://blog.csdn.net/hspingcc/article/details/73332380
