2012-02-15 28 views
5

在Python應用程序中,我需要知道當前的日子。 datetime.date.today()效果很好。問題是,當我將程序部署到位於美國的服務器時,我的用戶羣(意大利語)顯示的日期可能不是正確的(因爲服務器有6個時區)。Python中的時區

如何根據特定時區在python 中構造日期對象?謝謝

+0

['pytz'](http://pytz.sourceforge.net/)是你的朋友。 – Amber 2012-02-15 18:54:32

回答

4

大家都同意,UTC是美好的,但如果datetime.date.today()在美國沒有時區運行,這並沒有多大幫助。如果用戶羣在意大利,那麼這是你想要顯示的日期...

import datetime 
import pytz 

IT = pytz.timezone('Europe/Rome') 
oggi = datetime.now(IT).date() 
-2

訪問類,創建一個實例,設置自己的時間,每次你想要的時間訪問該對象。

+0

我已經這樣做過,它的工作原理!這很酷,因爲你可以隨時設置你想要的,程序會跟蹤它。我支持pytz也可以。 – 2012-02-15 18:57:37

+0

我不明白你在說什麼。你能詳細說明嗎? – 2015-06-08 22:15:01

5

通常情況下,服務器應用程序將使用UTC執行其所有時間存儲和計算。時間也會以UTC傳輸到客戶端。然後,您在客戶端一側(在Javascript中,如果它是Web應用程序)轉換爲當地時間。服務器很難爲每個客戶端獲得時區,因爲服務器根本沒有所有信息。

即使您的應用程序專門針對意大利用戶,他們也會知道前往其他時區。

+0

+1使用一個好的標準(如UTC)並將其轉換爲客戶端是一個更好的主意。 – 2012-02-15 19:44:58