1、原因
数据库入库的时候会有500毫秒的进位,毫秒级有50% 的概率会大于500,所以会有出现入库之后,变成第二天的00:00:00.
2、解决方案
定义LocalTime做出如下定义
3、工具类代码
/**
* 获取某天最小时间
* @param date 时间
* @return 获取某天最小时间
*/
public static Date getEndOfDay(Date date) {
LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(date.getTime()), ZoneId.systemDefault());;
LocalTime localTime = LocalTime.of(23, 59, 59);
LocalDateTime endOfDay = localDateTime.with(localTime);
return Date.from(endOfDay.atZone(ZoneId.systemDefault()).toInstant());
}