Dateutil.enofDay()踩坑

Dateutil.enofDay()存数据库日期为第二天00:00:00

一、问题描述:

前端传过来一个日期(如:2024-06-08),存数据库的时候需要存当天的结束时间(2024-06-08 23:59:59),刚开始使用了hutool的Dateutil.enofDay()方法,结果一测试发现数据库寸的值变成了(2024-06-09 00:00:00),前端还需要拿这个日期,这显然是不对的。

二、问题解决:

MySQL对于毫秒大于500的数据会进行进位,所以我们只需要让毫秒部分小于500即可

// 取结束时间
DateTime time = DateUtil.endOfDay(examineBO.getEndTime());
// 偏移-999毫秒
DateTime endTime = DateUtil.offsetMillisecond(time,-999);