【发布时间】:2013-10-04 04:58:32
【问题描述】:
datetime 使用 UTC 存储在 postgres DB 中。我可以看到 postgres 表中的日期是 2013-09-28 00:15:52.62504+05:30。
但是当我通过 django 模型获取值时,我得到的日期时间字段与 datetime.datetime(2013, 9, 27, 18, 45, 52, 625040, tzinfo=) 相同。
在 settings.py 文件中,USE_TZ 为 True,TIME_ZONE 为“亚洲/加尔各答”。我认为保存到 DB 工作正常,因为 DB 包含正确 UTC 为 +5:30 的日期时间。
我在这里做错了什么?
请帮忙。
谢谢 库马尔
【问题讨论】:
-
我不太明白这个问题。 2013-09-27 18:45 +05:30 确实是 2013-09-28 00:15。
-
Postgres 不理解
Indian Standard Time。你需要做一些自定义设置。 stackoverflow.com/questions/9815412/… -
Postgres 中的字段是什么数据类型?
-
@Hyperboreus,是的,表中的值是正确的,但是当我通过 django 模型获取值时,它会转换为 UCT+0:00,从而将模型字段的值作为 datetime.datetime(2013 , 9, 27, 18, 45, 52, 625040, tzinfo=)。我不确定为什么在 django 设置中完成此转换我已正确设置时区。
-
@karthikr,我认为 posgtres 已经使用时区存储了正确的值,但是 django 模型将其转换回美国时区,我不明白为什么。
标签: python django postgresql timezone