caselawclient.models.utilities.dates

 1from datetime import datetime
 2
 3from dateutil.parser import isoparse
 4from pytz import UTC, tzinfo
 5
 6
 7def parse_string_date_as_utc(iso_string: str, timezone: tzinfo.BaseTzInfo) -> datetime:
 8    """iso_string might be aware or unaware:
 9    ensure that it is converted to a UTC-aware datetime"""
10
11    mixed_date = isoparse(iso_string)
12    aware_date = mixed_date if mixed_date.tzinfo else timezone.localize(mixed_date)
13
14    # make UTC
15    utc_date = aware_date.astimezone(UTC)
16    return utc_date
def parse_string_date_as_utc(iso_string: str, timezone: pytz.tzinfo.BaseTzInfo) -> datetime.datetime:
 8def parse_string_date_as_utc(iso_string: str, timezone: tzinfo.BaseTzInfo) -> datetime:
 9    """iso_string might be aware or unaware:
10    ensure that it is converted to a UTC-aware datetime"""
11
12    mixed_date = isoparse(iso_string)
13    aware_date = mixed_date if mixed_date.tzinfo else timezone.localize(mixed_date)
14
15    # make UTC
16    utc_date = aware_date.astimezone(UTC)
17    return utc_date

iso_string might be aware or unaware: ensure that it is converted to a UTC-aware datetime