Django时区和Postgresql

时间:2016-12-22 09:44:47

标签: python django datetime timezone django-timezone

我知道这个问题已经不是第一次讨论了,但我遇到了一个问题并且有点困惑。

所以我有一个芹菜任务应该及时发送提醒。

在我的配置中:

USE_TZ = True
TIMEZONE = 'Asia/Singapore'

例如我有一个类似的模型:

class Reminder(models.Model):
    created =  models.DateTimeField(default=timezone.now)

这是一个简化的模型,它有更多的字段,但在DateTime字段中存在问题。

然后我打开django shell并得到时间:

timezone.now()
reminder.created

以UTC显示正确的时间:

datetime.datetime(2016, 12, 22, 8, 47, 43, 370101, tzinfo=<UTC>) #tz now
datetime.datetime(2016, 12, 22, 8, 47, 43, 370101, tzinfo=<UTC>) #reminder created

但是,如果我从控制台运行任务并设置打印或尝试使用ipdb进行调试,我得到了上面的时间:

2016-12-22 09:17:19.141242+00:00 # tz now
2016-12-22 16:52:43.366542+00:00 # reminder time CONVERT UTC+8 like Singapore but it became UTC now!!!

所以,我无法理解它是怎么回事。当然,在这种情况下,我无法正确比较日期时间。

Django 1.8和DB PostgreSQL

0 个答案:

没有答案