我有一個Django模型與datetime字段。保存時,存儲在我的DB中的日期時間字段會丟失時區信息,因此它將保存爲日期時間的幼稚。一般來說,這不是一個問題,因爲在模板中呈現日期時間字段時,Django會自動將其轉換回來。Django日期時間字段 - 轉換爲時區在視圖
但是視圖呢?假設我需要日期時間服務器端的字符串表示。根據夏季/冬季時間的不同,我的時區可能是GTM + 1或GMT + 2,這會讓事情變得更加困難。
那麼我該如何申請本地tz轉換在視圖?我用pytz嘗試了幾種方法。沒有成功,青梅條目轉換爲GMT + 1和他人GMT + 2 :(
如
system_tz = pytz.timezone('Europe/Berlin')
local_dt = item.created_at.astimezone(system_tz)
local_dt = system_tz.normalize(local_dt)
附加信息:
- 的Django 1.8.7
- 設置。 .USE_TZ = True
- MySQL
- 爲什麼我這樣做?因爲我有一張表,它通過AJAX按需加載其所有行。我需要在將它們發送給客戶端之前使用strftime()準備日期時間值。
同樣的結果。一些條目轉換爲GMT + 1,其他條目轉換爲GMT + 2。也許是因爲我的時區是夏令時,但現在都應該是GMT + 1。 – pisapapiros
pisapapiros 2016-03-20(時間變更前)是UTC + 1,2016-03-30(時間變更後)是UTC + 2 http://www.timeanddate.com/time/zone/germany/berlin。 – vsd
哦,就是這樣!我嘗試了太多的東西,終於搞砸了我的想法,但輸出結果是正確的!感謝弗拉基米爾幫助解決問題 – pisapapiros