2009-11-17 98 views
1

在Python中使用時間的問題。Python中奇怪的時間問題

終端>的Python

>>> calendar.timegm(datetime.datetime.now().utctimetuple()) 
1258449380 

這個時間是指通過Django的服務器GMT: Tue, 17 Nov 2009 09:16:20 GMT

的Eclipse

>>> calendar.timegm(datetime.datetime.now().utctimetuple()) 
1258427784 

這個時間表示GMT: Tue, 17 Nov 2009 03:16:24 GMT

我的當前時區是格林尼治標準時間,時間是過去9分鐘16分鐘,這意味着終端是正確的,但是Eclipse/Django的時間是6個小時。我很困惑。我以爲他們都會使用相同版本的Python?據我所知,我只有2.6.2安裝。

回答

7

Django設置爲芝加哥時間。您可以更改它,編輯(或添加)settings.py中的TIME_ZONE標誌。

如果您在Windows上運行,那麼Django的力量把事情搞得一團糟,如果你不將它設置爲你的本地區域 - http://docs.djangoproject.com/en/dev/ref/settings/

+0

我依稀記得改變我的最後一個Django項目變量。該死的。非常感謝! – Federer 2009-11-17 09:30:10

+1

我認爲它實際上設置爲堪薩斯州勞倫斯時間,它與芝加哥處於同一時區。 – 2009-11-17 11:18:13

0

接近愚蠢,這兩個運行在同一臺機器上?如果沒有,兩臺機器是否都使用NTP來同步時間?

2

通過運行python -c "import sys; print sys.path並檢查輸出以查看它們是否相同,可以檢查它是否是相同版本的python。

否則 - 它可能與您的TZ環境變量或其他時區設置有關。也許Django在環境中設置了一個全球時區。 。要檢查這個,你可以嘗試使用utcnow()而不是now().utctimetuple。如果這些相同,那麼每個環境都認爲它處於不同的時區。