Django中的时区1.4

时间:2013-07-23 10:52:49

标签: python django timezone django-1.4

我的项目最初是在Django 1.3上,现在我正在将它迁移到Django 1.4。

#models.py
class my_model(models.Model):
    traveldate = models.DateTimeField(null=False,db_index=True,blank=True)

设置文件:

TIME_ZONE = 'Asia/Kolkata'
USE_TZ = True

Say item是my_model的一个实例。然后在Django 1.3中,

>>> item.traveldate
>>> datetime.datetime(2012, 7, 27, 8, 35)
>>> datetime.datetime.now()
>>> datetime.datetime(2013, 7, 23, 16, 1, 32, 371116)

存储在数据库中的item.traveldatedatetime.datetime.now()都是本地时间和时区感知日期时间对象,因此我们可以很好地比较它们。

但是现在,

>>> item.traveldate
>>> datetime.datetime(2012, 7, 27, 8, 35, tzinfo=<UTC>)
>>> timezone.now()
>>> datetime.datetime(2013, 7, 23, 10, 32, 57, 609166, tzinfo=<UTC>)

timezone.now()是一个知道日期时间对象,带有utc时区,很好。但是存储在数据库中的值似乎已经被视为并且被认为是utc,而它是在IST时区。这打破了我的比较!

对于新数据,这可以正常工作,因为在保存到数据库之前它将转换为UTC。但旧数据呢?

我是否真的需要将我的所有数据从本地转换为UTC?考虑到模型的数量,这将是很多工作。 请告知是否还有其他事情可以做。

0 个答案:

没有答案