У меня есть модель под названием Vote
с полем date
:Python/Django MySQL обработки Datetime и часовой пояс
date = models.DateTimeField(auto_now_add=True)
Когда я добавить элемент, дата в MySQL является дата UTC, но я живу в UTC +2 часовой пояс
Я думаю, что я правильно установить часовой пояс в settings.py
:
TIME_ZONE = 'Europe/Paris'
Python использовать правильный часовой пояс:
>>> print datetime.datetime.now()
2013-07-03 09:05:04.474000
MySQL тоже:
> SELECT NOW()
2013-07-03 09:00:48
Я мог бы установить атрибут даты Мануалы, он работает, но я хотел бы знать, почему auto_now_add возвращает неправильную дату хотя и питона и MySQL использовать правильный часовой пояс,
Спасибо
У меня USE_TZ установлено значение True, я предпочитаю хранить дату в локальном часовом поясе, поэтому я устанавливаю USE_TZ в False, и это работает! Спасибо –
Пожалуйста, помните, что если вы установите его на «False», вы будете испытывать сильную боль при локализации своего приложения. Я бы предпочел сохранить его в UTC и написать промежуточное программное обеспечение, чтобы установить тембр для текущего запроса. Если у вас есть время, потратьте немного средств на исследование этого http://stackoverflow.com/questions/15065338/django-timezone-localization-not-working-as-expected :) – Babu
Хорошо, мое приложение не должно быть локализовано. Но я помню это для следующего разработчика. Спасибо, очень полезный комментарий –