2012-02-13 149 views
1

我遇到隨機更改時區的保存對象的問題。django - 時間戳隨機更改時區

我的django應用程序位於使用ntp同步的ubuntu web服務器上。

在我的Django的設置文件我有TIME_ZONE = 'Europe/London'

我創建用途myObject.timestamp=datetime.datetime.now(),然後保存的對象。

由於某些原因,我發現偶爾記錄的時間戳應該是-6小時(即,如果服務器恢復爲默認的時區設置)。

這似乎只發生在週一早上4點到6點之間。我還沒有找到任何與此相對應的計劃任務。

例如今天上午創建下列對象:

time_created/timestamp_recorded 

05:02/05:02 
05:03/23:03 
05:04/05:04 
05:05/23:05 
05:06/23:06 
05:07/05:07 
05:08/23:08 
05:09/05:09 

...依此類推,直到05:45時,從所有對象有正確的時間戳。

關於在哪裏尋找可能原因的任何想法?

+0

服務器上設置的時區是什麼? 數據庫的時區是什麼? – 2012-02-13 11:18:59

+0

'SELECT @@ session.time_zone;'在mysql實例上返回'SYSTEM'並在命令行輸入'date'返回'Mon Feb 13 12:27:24 GMT 2012' – meepmeep 2012-02-13 12:28:01

回答

1

我找到了答案 - 見http://code.google.com/p/modwsgi/wiki/ApplicationIssues#Timezone_and_Locale_Settings

基本上是一個二次申請也正在WSGI運行,而這個其他應用再沒使用的日期時間。因此,我沒有改變它的默認時區設置。每當運行其他應用程序時,它都會將環境重置爲默認時區。

因此,當我的核心應用程序運行時,它會同時使用錯誤的區域設置,但也會將環境重置到正確的位置,從而導致間歇性故障。