Django Приложение: проблемы с часовым поясом при запуске приложения Heroku? - PullRequest
0 голосов
/ 10 марта 2020

Я создаю приложение для планирования на Django. Согласно большинству рекомендаций для topi c, встречи (в моей модели встреч) хранятся в UT C. Поэтому мои settings.py установлены на TIME_ZONE = 'UTC'. Приложение отлично работало в моей локальной среде, но при развертывании в Heroku у меня начались проблемы.

Чтобы дать вам пример (в производстве):

>>> heroku run bash
>>> python manage.py shell
>>> from datetime import datetime
>>> datetime.now()
datetime.datetime(2020, 3, 10, 17, 10, 10, 453536)

Тем не менее, на локальном компьютере я получаю:

datetime.datetime(2020, 3, 10, 13, 10, 10, 196794)

Я попытался решить проблему (ie, 4-часовая разница), изменив TZ config значение приложения в мое местное время, например, так:

heroku config:add TZ='America/Toronto'

Не повезло. Кто-нибудь понимает, почему это происходит? Любые предложения о том, как решить эту проблему?

1 Ответ

0 голосов
/ 10 марта 2020

Использование:

datetime.datetime.utcnow()

или, основываясь на передовой практике документации:

datetime.datetime.now(timezone.utc)

datetime.datetime(2020, 3, 11, 19, 33, 32, 335610)
>>> datetime.datetime.utcnow()
datetime.datetime(2020, 3, 11, 18, 33, 37, 582409)
>>>

>>> datetime.datetime.now(datetime.timezone.utc)
datetime.datetime(2020, 3, 11, 18, 32, 56, 146774, tzinfo=datetime.timezone.utc)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...