2024-05-16 10:17:45 -04:00
|
|
|
import os
|
2025-02-24 10:18:33 -08:00
|
|
|
from zoneinfo import ZoneInfo
|
2024-05-16 10:17:45 -04:00
|
|
|
|
|
|
|
|
from dateutil import parser
|
|
|
|
|
|
2025-02-24 10:18:33 -08:00
|
|
|
local_timezone = os.getenv("TIMEZONE", ZoneInfo("America/New_York"))
|
2024-05-16 10:17:45 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
def utc_string_to_aware_gmt_datetime(date):
|
|
|
|
|
"""
|
|
|
|
|
Date can either be a string, naïve UTC datetime or an aware UTC datetime
|
|
|
|
|
Returns an aware local datetime, essentially the time you'd see on your clock
|
|
|
|
|
"""
|
|
|
|
|
date = parser.parse(date)
|
2025-02-24 10:32:39 -08:00
|
|
|
forced_utc = date.replace(tzinfo=ZoneInfo("UTC"))
|
2024-05-16 10:17:45 -04:00
|
|
|
return forced_utc.astimezone(local_timezone)
|