Неверная дата 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,

Другие вопросы по тегам