From 4a8635d4a25549a5bd1221196c728eccf970d45f Mon Sep 17 00:00:00 2001 From: Goffi Date: Thu, 30 Mar 2023 16:52:18 +0200 Subject: [PATCH] tools (common/date_utils): new `get_timezone_name` to retrieve it from a tzinfo and a timestamp --- sat/tools/common/date_utils.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/sat/tools/common/date_utils.py b/sat/tools/common/date_utils.py index a9a16556..03c556d3 100644 --- a/sat/tools/common/date_utils.py +++ b/sat/tools/common/date_utils.py @@ -247,3 +247,21 @@ def delta2human(start_ts: Union[float, int], end_ts: Union[float, int]) -> str: text_elems.append(f"{value} {unit}") return ", ".join(text_elems) + + +def get_timezone_name(tzinfo, timestamp: Union[float, int]) -> str: + """ + Get the DST-aware timezone name for a given timezone and timestamp. + + @param tzinfo: The timezone to get the name for + @param timestamp: The timestamp to use, as a Unix timestamp (number of seconds since + the Unix epoch). + @return: The DST-aware timezone name. + """ + + dt = datetime.datetime.fromtimestamp(timestamp) + dt_tz = dt.replace(tzinfo=tzinfo) + tz_name = dt_tz.tzname() + if tz_name is None: + raise exceptions.InternalError("tz_name should not be None") + return tz_name