diff --git a/personal_data/parse_util.py b/personal_data/parse_util.py index 878b271..d23c4a0 100644 --- a/personal_data/parse_util.py +++ b/personal_data/parse_util.py @@ -36,10 +36,16 @@ def parse_response_datetime(response) -> datetime.datetime: ).replace(tzinfo=datetime.UTC) +LOCAL_TIMEZONE = datetime.datetime.now(datetime.timezone.utc).astimezone().tzinfo + + def parse_time(text: str) -> datetime.datetime: text = text.replace('\n', ' ') text = text.strip() - return datetime.datetime.strptime(text, '%d %b %Y %I:%M:%S %p') + time = datetime.datetime.strptime(text, '%d %b %Y %I:%M:%S %p') + time = time.replace(tzinfo=LOCAL_TIMEZONE) + assert time.tzinfo is not None, time + return time def parse_date(text: str) -> datetime.date: diff --git a/personal_data/util.py b/personal_data/util.py index e1d1003..536ff89 100644 --- a/personal_data/util.py +++ b/personal_data/util.py @@ -62,6 +62,8 @@ def csv_str_to_value( def csv_safe_value(v: object) -> str: if isinstance(v, urllib.parse.ParseResult): return v.geturl() + if isinstance(v, datetime.datetime): + assert v.tzinfo is not None, v return str(v)