【问题解决】Mysql插入时间多了一秒

问题情境:

业务的代码中有有效期的概念,要求有效期到到期日的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();
    }

你可能感兴趣的:(java)