Неверная дата UTC в MongoDB Compass
Я упаковываю свой питон (flask
) приложение с докером. В моем приложении я генерирую дату UTC с datetime
использование библиотеки datetime.utcnow()
, К сожалению, когда я проверяю сохраненные данные с MongoDB Compass
дата UTC смещена на два часа (на мой местный часовой пояс). Все мои док-контейнеры имеют часовой пояс Etc/UTC
, Morover, mongoengine
подключение к MongoDB использует tz_aware=False
а также tzinfo=None
, что мешает на лету конвертации дат.
Откуда берется смещение и как его исправить?
1 ответ
Наконец, после попытки доказать свою неправоту и безголовый ум, я нашел причину и решение моей проблемы.
Мы живем в мире иллюзий, и то, что ты видишь, не то, что ты получаешь!!!, Я решил проверить свои данные mongo shell
клиент, а не MongoDB Compass GUI
, Я выяснил, что данные, поступившие в базу данных, содержали правильную дату UTC. Это сузило все мои предыдущие предположения о том, что должно быть что-то не так с моим Python-приложением и средой, в которой оно живет. MongoDB Compass
сам. После изменения часового пояса на моем компьютере на случайный часовой пояс и обновления коллекции в течение MongoDB Compass
, отображаемая дата UTC изменена на дату, которая соответствует случайному часовому поясу.
Быть в курсе, что MongoDB Copass
отображает все, что сохраняется в базе данных Date
поле, увеличенное о часовом поясе вашей машины. Пример, если вы сохранили время UTC, эквивалентное 8:00 am
и часовой пояс вашей машины - Европа / Варшава MongoDB Compass
будет отображать 10:00am
,