0
保存下列模型時,開始日期時間比本地時間少一小時。我已經設置了USE_TZ = True
和TIME_ZONE = "Europe/Madrid"
。我想時間少一點是因爲它被稱爲UTC(比歐洲/馬德里少一小時)。 MySQL也存儲錯誤的日期時間。但是,我需要在我的網站上顯示正確的日期時間。日期時間在管理員中是正確的,但在應用程序的其餘部分中是不正確的。保存時間少於一小時datetimefield
我已經嘗試了幾種方法來實現日期時間,但我無法得到它。這是我的實際代碼,分配給起始場:
pytz.timezone("Europe/Madrid").localize(datetime.datetime.now()).strftime("%Y-%m-%dT%H:%M:%S")
當我執行之前的指令,我得到了正確的日期與print
,但在保存時,它被保存(一小時)少。爲什麼?
這是我的模型:
class Event(models.Model):
title = models.CharField(max_length=40)
start = models.DateTimeField(null=True,blank=True)
end = models.DateTimeField(null=True,blank=True)
allday = models.BooleanField(default=False)
user = models.ForeignKey(User)
編輯-1:
的AJAX調用:
$.ajax({
type: "GET",
url: "/projects/{{project.id}}/get_events/",
dataType: "json",
success: function(response){
data = eval("(" + response + ")")
var events = [];
for(i=0;i<data.length;i++){
events.push({
id: data[i].pk,
title: data[i].fields['title'],
start: data[i].fields['start'],
end: data[i].fields['end'],
className: "event",
defaultTimedEventDuration: "00:30:00"
});
}
}
});
您是否閱讀過[時區文檔](https://docs.djangoproject.com/zh/dev/topics/i18n/timezones/)?日期時間以UTC格式存儲,因爲識別日期時間*總是*以UTC格式存儲。但是,顯示給用戶的時區基於當前時區,默認情況下是TIME_ZONE時區。這就是爲什麼你在管理中獲得正確的價值。請定義「應用程序的其餘部分」,以便清楚地知道你在哪裏得到錯誤的值。 – 2014-12-03 12:01:42
「應用程序的其餘部分」是指網站。我有一個日曆插件,其中顯示的每個事件都少了一個小時(UTC日期時間)。如何引用本地時間或當前時區而不是以UTC存儲的日期時間? – DavidRguez 2014-12-03 12:10:40
我通過AJAX調用獲取所有日曆事件,使用簡單的'events = Event.objects.filter(user = user)'查詢事件並序列化它們'data = serializers.serialize('json',events) 」。我把AJAX調用放在帖子的編輯部分。 – DavidRguez 2014-12-03 12:14:17