See also: xkcd 1883

60% Of The Time, It Works Every Time

Working with dates and times is annoying, and roughly once every 3-4 weeks I completely forget how to convert a string that includes a timezone to a timezone aware datetime object in python/pandas.

I often have a string like this: 2021-04-24T03:55:09-04:00 that I want to convert.

Here is a template so I can find it later:

import pandas as pd

source_file = "data.csv"

df = pd.read_csv(source_file, parse_dates=True)

# convert `datetime_str` to datetime and localize to the `America/Los_Angeles` timezone
# if you do not localize, will be converted to `UTC` with the `utc=True` parameter
df["datetime"] = pd.to_datetime(df["datetime_str"], utc=True).dt.tz_convert("America/Los_Angeles")

# set the `datetime` column to be the index
df.set_index("datetime", inplace=True)