mongodb时间差8小时,原因及解决方案

博客内容描述了在使用MongoDB时遇到的时间时区问题,即数据存储和查询时自动减少8小时。作者提到NavicatPremium15显示的时间不正确,但通过Robo3T1.2设置时区后能正常显示。同时,作者寻求帮助设置Studio3T的时区。
摘要由CSDN通过智能技术生成

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

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值