diff --git a/src/corelibs/string_handling/timestamp_strings.py b/src/corelibs/string_handling/timestamp_strings.py index ae3fea9..22b9b50 100644 --- a/src/corelibs/string_handling/timestamp_strings.py +++ b/src/corelibs/string_handling/timestamp_strings.py @@ -25,13 +25,15 @@ class TimestampStrings: def __init__(self, time_zone: str | ZoneInfo | None = None): self.timestamp_now = datetime.now() - self.time_zone = time_zone if time_zone is not None else self.TIME_ZONE + # set time zone as string + time_zone = time_zone if time_zone is not None else self.TIME_ZONE + self.time_zone = str(time_zone) if not isinstance(time_zone, str) else time_zone + # set ZoneInfo type try: - self.timestamp_now_tz = datetime.now( - ZoneInfo(self.time_zone) if isinstance(self.time_zone, str) else self.time_zone - ) + self.time_zone_zi = ZoneInfo(self.time_zone) except ZoneInfoNotFoundError as e: raise ValueError(f'Zone could not be loaded [{self.time_zone}]: {e}') from e + self.timestamp_now_tz = datetime.now(self.time_zone_zi) self.today = self.timestamp_now.strftime('%Y-%m-%d') self.timestamp = self.timestamp_now.strftime("%Y-%m-%d %H:%M:%S") self.timestamp_tz = self.timestamp_now_tz.strftime("%Y-%m-%d %H:%M:%S %Z") diff --git a/tests/unit/string_handling/test_timestamp_strings.py b/tests/unit/string_handling/test_timestamp_strings.py index d9d0522..ebfabb9 100644 --- a/tests/unit/string_handling/test_timestamp_strings.py +++ b/tests/unit/string_handling/test_timestamp_strings.py @@ -144,8 +144,8 @@ class TestTimestampStrings: ts = TimestampStrings(time_zone=custom_tz_obj) # The time_zone should be the ZoneInfo object itself - assert ts.time_zone is custom_tz_obj - assert isinstance(ts.time_zone, ZoneInfo) + assert ts.time_zone_zi is custom_tz_obj + assert isinstance(ts.time_zone_zi, ZoneInfo) def test_zoneinfo_object_vs_string_equivalence(self): """Test that ZoneInfo object and string produce equivalent results""" @@ -167,7 +167,7 @@ class TestTimestampStrings: # The time_zone attributes will be different types but represent the same timezone assert str(ts_string.time_zone) == 'Europe/Paris' - assert isinstance(ts_zoneinfo.time_zone, ZoneInfo) + assert isinstance(ts_zoneinfo.time_zone_zi, ZoneInfo) def test_edge_case_midnight(self): """Test timestamp formatting at midnight""" diff --git a/uv.lock b/uv.lock index 3753dc0..9e91ad6 100644 --- a/uv.lock +++ b/uv.lock @@ -53,7 +53,7 @@ wheels = [ [[package]] name = "corelibs" -version = "0.24.2" +version = "0.24.3" source = { editable = "." } dependencies = [ { name = "jmespath" },