我有一個模式叫Vote
與現場date
:的Python/Django的MySQL的日期時間處理和時區
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
我可以manualy設置日期屬性,它的工作原理,但我想知道爲什麼auto_now_add返回一個錯誤的日期,雖然蟒蛇和MySQL使用正確的時區
謝謝
我的USE_TZ被設置爲True,我更喜歡將日期存儲在本地時區,所以我將USE_TZ設置爲False並且它工作正常!謝謝 –
請記住,如果將它設置爲「False」,那麼在本地化您的應用程序時,您將面臨巨大的痛苦。我更願意以UTC存儲它,並編寫一箇中間件來爲當前請求設置timzone。如果你有時間,花點時間研究這個http://stackoverflow.com/questions/15065338/django-timezone-localization-not-working-as-expected :) – Babu
好吧,我的應用程序不應該本地化。但我爲下一個開發人員記住這一點。感謝非常有用的評論 –