Java8 Date与LocalDateTime互转
LocalDateTime表示一个跟时区无关的日期和时间。
Date转LocalDateTime
2种方式
public static void main(String[] args) {
Date date = new Date();
System.out.println("date2LocalDateTime1:"+date2LocalDateTime1(date));
System.out.println("date2LocalDateTime2:"+date2LocalDateTime2(date));
}
/**
* 方法1
* @param date
* @return
*/
public static LocalDateTime date2LocalDateTime1(Date date) {
if(null == date) {
return null;
}
return LocalDateTime.ofInstant(date.toInstant(),ZoneId.systemDefault());
}
/**
* 方法2
* @param date
* @return
*/
public static LocalDateTime date2LocalDateTime2(Date date) {
if(null == date) {
return null;
}
return date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
}
控制台输出:
date2LocalDateTime1:2018-06-29T14:12:03.049
date2LocalDateTime2:2018-06-29T14:12:03.049
LocalDateTime转Date
public static void main(String[] args) {
LocalDateTime localDateTime = LocalDateTime.now();
System.out.println("localDateTime2Date:"+localDateTime2Date(localDateTime));
}
public static Date localDateTime2Date(LocalDateTime localDateTime) {
if(null == localDateTime) {
return null;
}
ZonedDateTime zonedDateTime = localDateTime.atZone(ZoneId.systemDefault());
return Date.from(zonedDateTime.toInstant());
}
控制台输出:
localDateTime2Date:Fri Jun 29 14:12:03 CST 2018