Java8 日期时间API,新增了LocalDate、LocalDateTime、LocalTime等线程安全类,接下来要说的是LocalDate与java.util.Date之间的转换。
1、LocalDate不包含时间,描述的是日期,如果对时间不关心,可以使用LocalDate
2、Date转LocalDate
public static void main(String[] args) {
Date date = new Date();
LocalDate localDate = LocalDate.now();
LocalDateTime localDateTime = LocalDateTime.now();
System.out.println("date2LocalDate:"+date2LocalDate(date));
}
/**
* Date转LocalDate
* @param date
*/
public static LocalDate date2LocalDate(Date date) {
if(null == date) {
return null;
}
return date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
}
控制台输出:
date2LocalDate:2018-06-28
3、LocalDate转Date
public static void main(String[] args) {
Date date = new Date();
LocalDate localDate = LocalDate.now();
LocalDateTime localDateTime = LocalDateTime.now();
System.out.println("localDate2Date:"+localDate2Date(localDate));
}
/**
* LocalDate转Date
* @param localDate
* @return
*/
public static Date localDate2Date(LocalDate localDate) {
if(null == localDate) {
return null;
}
ZonedDateTime zonedDateTime = localDate.atStartOfDay(ZoneId.systemDefault());
return Date.from(zonedDateTime.toInstant());
}
控制台输出:
localDate2Date:Thu Jun 28 00:00:00 CST 2018