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