python – MongoDB Compass中的UTC日期不正确

我用docker打包我的python(flask)应用程序.在我的应用程序中,我使用datetime.utcnow()生成日期时间库的UTC日期.

不幸的是,当我使用MongoDB Compass检查保存的数据时,UTC日期会偏移两个小时(到我当地的时区).我的所有docker容器都将时区设置为Etc / UTC. Morover,与MongoDB的mongoengine连接使用tz_aware = False和tzinfo = None,这会阻止飞行日期转换.

偏移来自何处以及如何解决?

最佳答案
最后,在试图证明自己错了之后,无头的我找到了问题的原因和解决方案.

我们生活在幻想的世界里,你所看到的不是你得到的!我决定通过mongo shell客户端检查我的数据
而不是MongoDB Compass GUI.我发现到达数据库的数据包含正确的UTC日期.这缩小了我之前的所有内容
假设我的python应用程序和应用程序所处的环境有问题.MonoDB Compass本身还剩下什么.
将我的机器上的时区更改为随机时区,并在MongoDB Compass中刷新收集后,显示的UTC日期更改为适合随机时区的日期.

请注意,MongoDB Copass会显示数据库日期字段中保存的内容,并放大了有关计算机时区的信息.例如,如果您保存相当于上午8:00的UTC时间,
并且您的机器的时区是欧洲/华沙,然后MongoDB Compass将在上午10:00显示.

转载注明原文:python – MongoDB Compass中的UTC日期不正确 - 代码日志