2014-05-15 45 views
0

我有一個可以在多個時區工作的應用程序。我需要應用程序才能說「在2015年4月12日晚上10點,在America/New York時區,每30天重複一次」。 (和類似)。在將數據存儲到數據庫之前,將datetime轉換爲UTC?

如果我在PST中獲得用戶的日期時間,我應該在轉換爲UTC後將日期時間存儲在數據庫中嗎?

優點:易於管理,數據庫中的每個日期時間都是UTC。 缺點:不能考慮DST。 (我認爲)。

+0

相關:[在UTC中存儲時間總是個好主意還是在本地時間存儲更好?](http://stackoverflow.com/q/11537106/4279) – jfs

回答

1

您的意思是UTC?

數據庫應該處理所有關於時間/時區的邏輯。 您需要爲數據庫提供正確的時區,然後數據庫將其存儲並將其提供給客戶端以獲取所請求的時區。 例如postgresql中的類型:here

什麼是您的數據庫?

+0

Thanks,changed到UTC。我正在使用postgres。 – shabda

+0

所以你可以使用postgres的時區。 – aRkadeFR

1

是的,你應該在UTC中存儲你的分貝。

我不知道你爲什麼說你將無法應對DST。相反,任何好的時區庫(如pytz)都可以在任何時區將UTC轉換爲正確的時間,並將DST考慮在內。

+0

例如:上午11點CA每個月的10號不會是每個月UTC的同一時間。根據DST是否有效,可能是6PM或5PM。 – shabda

相關問題