changeset 4029:432f7e422a27

tools (common/date_utils): new `get_timezone_name` to retrieve it from a tzinfo and a timestamp
author Goffi <goffi@goffi.org>
date Thu, 30 Mar 2023 16:52:18 +0200
parents 883db2790b11
children 73936abc6838
files sat/tools/common/date_utils.py
diffstat 1 files changed, 18 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/sat/tools/common/date_utils.py	Thu Mar 30 16:51:09 2023 +0200
+++ b/sat/tools/common/date_utils.py	Thu Mar 30 16:52:18 2023 +0200
@@ -247,3 +247,21 @@
             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