How to make a timezone aware datetime object in Python?

Sometimes, we want to make a time zone aware datetime object in Python.

In this article, we’ll look at how to make a time zone aware datetime object in Python.

How to make a timezone aware datetime object in Python?

To make a time zone aware datetime object in Python, we can use the pytz module.

For instance, we write:

import datetime
import pytz

unaware = datetime.datetime(2020, 8, 15, 8, 15, 12, 0)
aware = datetime.datetime(2020, 8, 15, 8, 15, 12, 0, pytz.UTC)

now_aware = pytz.utc.localize(unaware)
assert aware == now_aware

We create datetime objects with the datetime.datetime method.

And as pass in the time zone as the last argument of datetime.datetime to create a UTC datetime.

Without the time zone argument, then datetime object isn’t time zone aware.

To convert a time zone unaware datetime to a time zone aware datetime, we call pytz.utc.localize.

Therefore, aware and non_aware are the same since we made both datetimes time zone aware, have the same time zone, and have the same date and time.

Conclusion

To make a time zone aware datetime object in Python, we can use the pytz module.