我首先将TIME_ZONE设置为UTC。但现在我想删除它,并为我的用户提供不同的时区。当重新启动gunicorn和nginx时,它仍然是相同的。这些帖子比它应该晚2个小时。
这就是我在DB中所得到的:
publish_date
-------------------------------
2016-09-21 09:08:40+00
2016-09-08 09:36:35+00
2016-09-07 09:08:42+00
2016-09-06 07:16:22+00
2016-09-06 01:50:58+00
2016-09-05 22:55:07+00
2016-09-05 16:22:37+00
2016-09-05 16:18:36.52146+00
2016-09-05 12:22:09.292926+00
2016-09-05 09:09:05+00
2016-09-04 19:00:12+00
2016-09-04 18:20:07.83214+00
2016-09-04 11:01:58+00
2016-09-04 10:02:29+00
2016-09-04 08:37:43.421796+00
2016-09-03 20:36:49+00
2016-09-03 13:42:06+00
2016-09-02 18:51:19+00
2016-09-02 18:36:16+00
2016-09-02 12:08:50+00
2016-09-02 10:33:28+00
2016-09-02 08:20:30+00
2016-09-02 08:18:36+00
2016-09-02 08:01:49.359479+00
2016-09-01 18:54:01.18064+00
2016-09-01 18:54:01.163647+00
2016-09-01 18:54:01.145824+00
2016-09-01 18:54:01.128807+00
2016-09-01 18:54:01.109296+00
2016-09-01 18:54:01.091886+00
2016-09-01 18:54:01.076142+00
2016-09-01 18:54:01.041784+00
2016-09-01 18:54:01.025924+00
2016-09-01 18:54:01.009529+00
2016-09-01 18:54:01+00
2016-09-01 18:54:00.988107+00
2016-09-01 18:54:00.971702+00
2016-09-01 16:58:54+00
2016-09-01 13:43:34+00
2016-09-01 13:38:35+00
2016-09-01 09:21:33+00
2016-09-01 09:17:41+00
2016-09-01 06:27:31+00
2016-08-31 22:41:13+00
2016-08-31 19:23:59.930632+00
2016-08-31 19:23:59.914006+00
2016-08-31 19:23:59.898492+00
2016-08-31 19:23:59.880307+00
2016-08-31 19:23:59.862554+00
2016-08-31 19:23:59.846515+00
(50 rows)
它显示+00,我认为是UTC。但应该是GMT / UTC + 2:00。
检查postgresql(show timezone;)时:
TimeZone
----------
UTC
(1 row)
我该怎么办?为什么会这样?
答案 0 :(得分:0)
UTC它很好。您应该将时区存储为UTC
,然后根据用户的时区/应用设置时区进行转换。
如果在数据库中存储不同的时区,可能会很麻烦。
设置USE_TZ = True
时。 Django将日期的时区存储为数据库中的UTC。然后,根据您在Django中的时区设置,它将自动从存储的UTC日期转换日期。
如果设置USE_TZ = False
。 Django将日期存储为天真的表示。