这个时间虽然写的是 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);