Timezone.now()vs datetime.datetime.now()

时间:2014-11-15 19:45:54

标签: python django datetime django-timezone

我应该何时使用django的timezone.now(),何时应该使用python的datetime.datetime.now()

例如,在以下INSERT中哪个更有意义?

- Product.objects.create(title='Soap', date_added=datetime.datetime.now())
- Product.objects.create(title='Soap', date_added=timezone.now())

是否有关于何时使用它们的经验法则?

3 个答案:

答案 0 :(得分:17)

始终使用timezone.now()。 Django现在有时区支持,需要时区'识别'日期时间对象。 datetime.now()将返回时区天真对象,而timezone.now()将返回时区感知对象。

答案 1 :(得分:0)

您可以用shell编写,例如:

java Helloworld

错误消息是:

timezone.datetime.now() < timezone.now() 

它们是不同的对象,只有timezone.now()具有UTC支持

答案 2 :(得分:0)

如果您想使用UTC,并且使用的是Python 3.2或更高版本,this answer说您可以:

#f

这将为您提供时区感知的UTC日期时间。