2017-08-16 38 views
0

我有一個Django API/PostgreSql項目,我嘗試以UTC格式存儲日期時間,稍後我將在角度轉換爲前端的正確時區。Django沒有在db中存儲確切的UTC時間

我目前的設置是:

USE_TZ = True 
TIME_ZONE = 'US/Eastern' 

我第一次使用UTC,但由於某些原因,日期時間被存儲爲+1小時,這樣我設置時區到我的服務器時區

型號:

date = models.DateTimeField(default = timezone.now()) 

但仍當我取回插入的記錄,時間爲-3分鐘遲到。

雖然當我使用的代碼波紋管,它存儲了一個正確的時間:

date = models.DateTimeField(auto_now_add=True) 

我失去了在配置上的東西嗎?我應該使用哪個TIME_ZONE ,服務器位置time_zone,或者它與服務器時間 設置有關?

+0

3分鐘是您的服務器的時間了嗎? –

+1

'date = models.DateTimeField(default = timezone.now())'<=這將默認日期設置爲模塊解析的時間。你可能想'default = timezone.now'(注意缺少括號)。 – dhke

+0

[Django datetime issues(default = datetime.now())](https://stackoverflow.com/questions/2771676/django-datetime-issues-default-datetime-now)可能的副本 – dhke

回答

0

的問題是,我不知道爲什麼,但即時通訊使用時:

date = models.DateTimeField(default = timezone.now()) # note: .now() with parenthesizes 

的時間卡,在當時當服務器啓動。

的修復用途:

date = models.DateTimeField(default = timezone.now) # without() 

IM在Django的1.6.5

+1

你的答案在參考文獻中重複;-)。 – dhke

相關問題