mysql保存系統傳遞的時間會詭異的增加一秒鍾
使用如下工具類:
public static Date getEndOfDay(Date date) { Calendar calendarEnd = Calendar.getInstance(); calendarEnd.setTime(date); calendarEnd.set(Calendar.HOUR_OF_DAY, 23); calendarEnd.set(Calendar.MINUTE, 59); calendarEnd.set(Calendar.SECOND, 59); return calendarEnd.getTime(); }
傳遞給MySQL數據庫時間2018-05-08 23:59:59,系統保存后變成了 2018-05-09 00:00:00,找了好久最后發現是因為MySQL數據庫對於毫秒大於500的數據進行進位
通過代碼改正這個問題,修正之后如下
public static Date getEndOfDay(Date date) { Calendar calendarEnd = Calendar.getInstance(); calendarEnd.setTime(date); calendarEnd.set(Calendar.HOUR_OF_DAY, 23); calendarEnd.set(Calendar.MINUTE, 59); calendarEnd.set(Calendar.SECOND, 59); calendarEnd.set(Calendar.MILLISECOND, 0); return calendarEnd.getTime(); }