How to convert a UTC datetime to a local datetime using only standard library with Python?

Sometimes, we want to convert a UTC datetime to a local datetime using only standard library with Python.

In this article, we’ll look at how to convert a UTC datetime to a local datetime using only standard library with Python.

How to convert a UTC datetime to a local datetime using only standard library with Python?

To convert a UTC datetime to a local datetime using only standard library with Python, we can use the pytz module.

For instance, we write

import pytz

local_tz = pytz.timezone('Europe/London')


def utc_to_local(utc_dt):
    local_dt = utc_dt.replace(tzinfo=pytz.utc).astimezone(local_tz)
    return local_tz.normalize(local_dt)

to create the utc_to_local function that takes the utc_dt datetime.

In it, we call utc_dt.replace with the tzinfo argument set to pytz.utc to parse the datetime as UTC.

Then we call astimezone with local_tz to convert the UTC datetime to the local_tz time zone.

And then we call local_tz.normalize with the local_dt to return the local datetime.

Conclusion

To convert a UTC datetime to a local datetime using only standard library with Python, we can use the pytz module.