只要涉及到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但是不会设置时区 ,有会的麻烦留言告诉我一下,谢谢啦。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐