DEV Community

Cover image for Snippet: Change timezone for DateTime object
Peter van der Does
Peter van der Does

Posted on

Snippet: Change timezone for DateTime object


Convert a Python DateTime object from one timezone to another timezone. This snippet accepts either a naive or aware DateTime object.


# code/

import datetime as dt
import pytz

def to_timezone(datetime_value, tz):
    Convert the given datetime object to a datetime object with the given timezone.
    Accepts both aware and naive datetime objects

    datetime_value: datetime.datetime
    tz: pytz.timezone

    if not isinstance(datetime_value, dt.datetime):
        raise SyntaxError

    if not hasattr(tz, "zone") or not in pytz.all_timezones:
        raise SyntaxError

    if (
        datetime_value.tzinfo is not None
        and datetime_value.tzinfo.utcoffset(datetime_value) is not None
        datetime_value = datetime_value.astimezone(tz)
        datetime_value = tz.localize(datetime_value)

    return datetime_value

Enter fullscreen mode Exit fullscreen mode

Found a typo?

If you've found a typo, a sentence that could be improved or anything else that should be updated on this blog post, you can access it through a git repository and make a pull request. Instead of posting a comment, please go directly to GitHub and open a pull request with your changes.

Photo by Ijaz Rafi -

Top comments (0)