针对 Java8新增的日期时间相关的 java.time.LocalDate 和 java.util.Date 的相互转换,做一个分享。
方法1
/**
* localDate to date
* @param localDate
* @return
*/
private Date asDate(LocalDate localDate){
ZoneId zoneId = ZoneId.systemDefault();
ZonedDateTime zonedDateTime = localDate.atStartOfDay(zoneId);
Instant instant = zonedDateTime.toInstant();
return Date.from(instant);
}
/**
* date to localDate
* @param date
* @return
*/
private LocalDate asLocalDate(Date date){
Instant instant = date.toInstant();
ZoneId zoneId = ZoneId.systemDefault();
ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(instant, zoneId);
return zonedDateTime.toLocalDate();
}
测试代码
@Test
public void test(){
Date date= asDate(LocalDate.of(2017, 8, 22));
System.out.println(date);
}
方法2
// 指定时间
Instant instant = LocalDateTime.of(1992, 8, 8, 12, 59, 59).toInstant(ZoneOffset.UTC);
// 转换为java.util.Date类型
Date date = Date.from(instant);