In django docs, it is written that they can always store the datetime objects in TIME_ZONE provided in settings.
I wanted to ask that is it just sufficient to date time aware objects or do we have to convert them to TIME_ZONE setting? ie if my TIME_ZONE = "America/Los_Angeles" and USE_TZ = True, and I try to save a time zone aware object which is in "UTC", will that work? That is, will django convert that "UTC" timezone object to "America/Los_Angeles" before saving to the db?
I believe that with USE_TZ = True
django will save everything to the DB in UTC. Every DateTime object must be timezone aware to be saved. When django retrieves a datetime from the database, it will automatically change it from UTC to an aware time in the time zone indicated by TIME_ZONE
in the settings.
So to answer your question, if you have a timezone aware datetime in UTC (let's say 19:00) and you save it, it will save to the DB as 19:00. When you retrieve it, django will make it TZ aware in "America/Los_angelos" so the datetime will now be 12:00.
You can also override the current Timezone setting from what's in settings by calling
from django.utils import timezone
timezone.activate('US/Central')
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With