Mercurial > libervia-backend
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