java8中增加了LocalDate和LocalDateTime等时间处理方法,基于之前主要使用Date类进行时间处理,这里总结一下LocalDate和Date之间的相互转化,后续对LocalDateTime、时间戳、UTC转化做统一总结。
- 将LocalDate对象转化为Date对象
/**
* 将LocalDate对象转化为Date对象
* @param localDate
* @return
*/
public Date localDate2date(LocalDate localDate){
if(null == localDate){
return null;
}
ZonedDateTime zonedDateTime = localDate.atStartOfDay(ZoneId.systemDefault());
return Date.from(zonedDateTime.toInstant());
}
- 进一步利用LocalDate将时间字符串转化为Date对象
/**
* 将时间字符串转化为date对象,使用LocalDate对象转换
* @param dateStr
* @return
*/
public Date getDate(String dateStr){
LocalDate localDate = LocalDate.parse(dateStr, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
return localDate2date(localDate);
}
- 将date对象转化为LocalDate对象
/**
* 将date对象转化为LocalDate对象
* @param date
* @return
*/
public LocalDate date2localDate(Date date){
if(null == date){
return null;
}
return date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
}