问题情境:
业务的代码中有有效期的概念,要求有效期到到期日的23:59:59秒,结果入库有时为第二天的00:00:00。
解决方案:
设置最后一位毫秒为0 ,mysql(有些版本的)会对插入的时间的毫秒值大于500的进位操作,所以在此地设置毫秒值为0
public static Date getDateWithMaxTime(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.HOUR_OF_DAY, 23);
calendar.set(Calendar.MINUTE, 59);
calendar.set(Calendar.SECOND, 59);
calendar.set(Calendar.MILLISECOND,0); //增加毫秒设置为0
return calendar.getTime();
}