Loaddata无法正确处理时间戳和时区

发布于 2021-01-29 16:22:53

我正在使用启用了mysql和时区的django
1.4.1。我将数据转储到yaml,修改了一些字段以创建一些测试数据,然后尝试将其重新加载。但是,即使指定了tz,Django仍然抱怨原始日期时间。

具体来说,我的loaddata有:

fields: {created_date: !!timestamp '2012-09-15 22:17:44+00:00', ...

但是loaddata给出错误:

RuntimeWarning: DateTimeField received a naive datetime (2012-09-15 22:17:44) while time zone support is active.

这对我来说没有多大意义,因为它是:

  1. UTC时间戳
  2. 与使用dumpdata导出的Django完全相同的格式

有什么办法可以告诉Django这是UTC日期吗?

关注者
0
被浏览
49
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    文档

    序列化感知日期时间时,将包括UTC偏移量,如下所示:

    "2011-09-01T13:20:30+03:00"
    

    对于幼稚的日期时间,显然不是:

    "2011-09-01T13:20:30"
    

    …所以而不是…

    created_date: !!timestamp '2012-09-15 22:17:44+00:00'
    

    …任何一个…

    created_date: '2012-09-15T22:17:44+00:00'
    

    …要么…

    created_date: '2012-09-15T22:17:44Z'
    

    …将工作。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看