2015-04-24 69 views
1

在設置有:Django不格式化GAE上的日期時間,一切everywhrere UTC

TIME_ZONE = 'Europe/Rome' 
USE_TZ = True 
USE_L10N = True 

但是,一切都在DB auto_now=True存儲UTC,並在管理中顯示的相同UTC!如何在用戶界面中正確強制使用django格式的日期時間或強制將當前時間存儲在一切中? loacales可以搞砸了嗎?

更新:我發現這很簡單,因爲與runserver處理的posiblle django應用程序處理日期正確,而不是GAE。

+1

datetimeproperty沒有時區的概念,你使用autonow = True等等......它總是UTC。您最好將所有內容存儲爲UTC,並將日期時間的顯示調整爲觀看者的TZ。我不知道你會如何做到這一點在Django - (我不使用它) –

+0

不,這不是這種情況。在輸出到UI時,Django應該從數據庫格式化UTC時間,從設置中獲取TZ。雖然這適用於runserver,但它不適用於Google應用引擎。 –

回答

1

我發現,添加pytz-GAE LIB(複製pytz文件夾到項目)和其導入在設置(從pytz.gae進口pytz)幫助。現在管理員界面中的時間根據設置中的TIME_ZONE格式化。

此外,現在刪除導入會產生一個錯誤,即tz'Europe/Rome'不可用。在將pytz複製到項目之前,不會引發錯誤。

0

看到這個link

底線,App Engine不給飛滾泥約TZ

+0

是的,這是真的,但Django應該在您的UIZ <-> UTC轉換在UI –