保存django datetimefield时少一个小时

时间:2014-12-03 11:33:04

标签: django datetime timezone fullcalendar pytz

保存以下型号时,保存开始日期时间比本地时间少一个小时。我已设置USE_TZ = TrueTIME_ZONE = "Europe/Madrid"。我想减少一小时是因为它被称为UTC(比欧洲/马德里少一个小时)。 MySQL也存储错误的日期时间。但是,我需要在我的网站上显示正确的日期时间。日期时间在管理员中是正确的,但在应用程序的其余部分中则不正确。

我已经通过几种方式尝试实现日期时间,但我无法得到它。这是我的实际代码,分配给起始字段:

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"
                });
            }
        }
 });      

1 个答案:

答案 0 :(得分:0)

看起来问题出在日历插件(FullCalendar)上,而不是整个应用程序。我已经意识到FullCalendar有一个时区选项,设置为false。将其设置为&#34; local&#34;,日期时间在网站中正确显示。

无论如何,谢谢大家的帮助!