Skip to content
Advertisement

Why does datetime.datetime.utcnow() not contain timezone information?

JavaScript

Why does this datetime not have any timezone info given that it is explicitly a UTC datetime?

I would expect that this would contain tzinfo.

Advertisement

Answer

That means it is timezone naive, so you can’t use it with datetime.astimezone

you can give it a timezone like this

JavaScript

now you can change timezones

JavaScript

To get the current time in a given timezone, you could pass tzinfo to datetime.now() directly:

JavaScript

It works for any timezone including those that observe daylight saving time (DST) i.e., it works for timezones that may have different utc offsets at different times (non-fixed utc offset). Don’t use tz.localize(datetime.now()) — it may fail during end-of-DST transition when the local time is ambiguous.

User contributions licensed under: CC BY-SA
1 People found this is helpful
Advertisement