问题描述
- 数据库的datetime精确到时分秒,在java中保存毫秒级的数据时,会判断毫秒是否>=500,导致数据多一秒
//例
long ts = 1634947200500L;
WorkObj w = new WorkObj();
w.setCreateTime(new Date(ts));
//保存到数据库
service.save(w);
//然后在接下来的场景中,继续使用我的工作对象 w
Date d1 = new Date(w.getCreateTime());
//这个时候数据库中的日期和代码中的日期d1已经不对等了
- 解决方案:
在使用前对"ts"进行去除精度
ts = ts /1000 * 1000;