When should I be using django's timezone.now()
and when should I be using python's datetime.datetime.now()
.
For example, in the following INSERT
which would make more sense?
- Product.objects.create(title='Soap', date_added=datetime.datetime.now())
- Product.objects.create(title='Soap', date_added=timezone.now())
Is there a rule of thumb on when to use each?
Just always use timezone.now()
. Django now has timezone support which requires timezone 'aware' datetime objects. datetime.now()
will return a timezone naive object, whereas timezone.now()
will return a timezone aware object.
You can write in shell, for example:
timezone.datetime.now() < timezone.now()
And the error message is:
TypeError: can't compare offset-naive and offset-aware datetimes
They are different objects, only timezone.now() have UTC support
来源:https://stackoverflow.com/questions/26949959/timezone-now-vs-datetime-datetime-now