【发布时间】:2015-06-18 12:53:17
【问题描述】:
在 Django 中卡住了。
我已经在我的 PostgreSQL 数据库中存储了一个值
TIME_ZONE = 'Asia/Kolkata'
格式,但是当我从 Django 获取相同的格式时,它会转换为 UTC。
例子:
我的 postgres 表中有一个时间线字段,其存储值为 2015-05-02 05:29:59+05:30
当我从 django shell 获取它时,它会给出datetime.datetime(2015, 5, 1, 23, 59, 59, tzinfo=UTC)
请提供帮助。我需要更改 Django 中的任何设置吗?我目前的设置是:
TIME_ZONE = 'Asia/Kolkata'
USE_I18N = True
USE_L10N = True
USE_TZ = True
除此之外,tzlocal 提供所需的时区值
>>> from tzlocal import get_localzone
>>> get_localzone()
<DstTzInfo 'Asia/Kolkata' LMT+5:53:00 STD>
【问题讨论】:
-
它是 postgres 中的'带时区的时间戳'。
-
在选择命令中按预期以 2015-05-02 05:29:59+05:30 格式输出。
-
在 select 命令中按预期输出 2015-05-02 05:29:59+05:30 格式。当我使用 django shell 从数据库中清除值时,我期望得到相同的输出,当前输出是 :>>> obj.timeline datetime.datetime(2015, 5, 1, 23, 59, 59, tzinfo=
)跨度> -
在 DB 中选择查询给出了完美的结果,当我从 django 中的 db 获取数据时出现问题,它仅转换为 UTC 格式。
-
db 中 select 命令的输出为 :greymeter2=# select timeline from myapp_test where id=6;时间线 --------------- 2015-05-02 05:29:59+05:30(1 行)
标签: python django postgresql datetime timezone