只要涉及到mongo的增删改查,他都会默认将时间-8,进行操作。不需要我们在代码中再进行时区设置,或者是为时间增加8小时。具体解析如下:
PS:下面时区设置不起作用,该少8小时,还是少8小时
1.传参数:
2017-06-28 14:13:28.031
直接通过代码获取
Date date = DateUtil.getDate(beginDate);
拿到结果如下图,和传入的时间相同
经过mongo后:
criteria.and("getPointDate").gte(DateUtil.getDate(beginDate)). lte(DateUtil.getDate(endDate)); query.addCriteria(criteria); List<GetPointLogVo> getPointLogVos = mongoTemplate.find(query, GetPointLogVo.class);
查询条件Query中的内容如下,比传入的参数少8小时。(因为数据库存储时会少8,所以查询时,mongodb会把条件默认减去8小时)
2.存储:
当前时间:
2021-12-29 13:57:52.000
存储到数据库中如下,比实际时间少8小时
2021-12-29 05:57:52.000
3.查询:
数据库中时间:
2021-12-29 05:57:52.000
拿到的时间如下图,比数据库中时间大8小时,是当前正常时间。
4.软件
我目前用的Navicat Premium 15,他库中的数据比正常时间少8小时。如下:
当我们修改为其他软件可以解决:
看见网上很多关于Robo 3T 1.2的操作,下载地址如下:
Robo 3T | Free, open-source MongoDB GUI (formerly Robomongo)
操作步骤:
双击
下面这一步直接选择Finish
即可。
连接数据库:
更改时区:
时间就是正常的时间。
我下载了studio3t ultimate for mongodb但是不会设置时区 ,有会的麻烦留言告诉我一下,谢谢啦。