Java时间入库后加了1s


这个时间虽然写的是 2034-08-31 23:59:59,而且系统打印也是2034-08-31 23:59:59。但是入库之后却是 2034-09-01 00:00:00

我们注意到 fasttime 是 2040652799999。那么fasttime是干什么的呢?

fasttime 是 Date 类中的一个属性,用于表示从1970年1月1日00:00:00 GMT起的毫秒数。所以是毫秒时间戳,

这个毫秒时间戳转换成时间后其实是 2034-08-31 23:59:59.999 入库的时候其实传递的也是这个时间

而这个时间一旦入库,就会自动四舍五入成为2034-09-01 00:00:00

所以遇到这个问题我就先手动设置时分秒吧

LocalDateTimeUtil.of(currentEndTime)
                 .plusMonths(approvalEndDuration)
                 .with(TemporalAdjusters.lastDayOfMonth())
                 .withHour(23).withMinute(59).withSecond(59);

评论