diff --git a/CHANGELOG.md b/CHANGELOG.md index 8314ad0e..b91a17ab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## 3.5.8.dev * Extend [auth]: re-factor & overhaul LDPA autrhentication, especially for Python's ldap module +* Fix: out-of-range timestamp on 32-bit systems ## 3.5.7 * Extend: [auth] dovecot: add support for version >= 2.4 diff --git a/radicale/utils.py b/radicale/utils.py index ed6c4ab2..f70e38e7 100644 --- a/radicale/utils.py +++ b/radicale/utils.py @@ -280,10 +280,7 @@ def format_ut(unixtime: int) -> str: # TODO check how to support this better return str(unixtime) if unixtime < DATETIME_MAX_UNIXTIME: - if sys.version_info < (3, 11): - dt = datetime.datetime.utcfromtimestamp(unixtime) - else: - dt = datetime.datetime.fromtimestamp(unixtime, datetime.UTC) + dt = datetime.datetime(1970, 1, 1, tzinfo=datetime.timezone.utc) + datetime.timedelta(seconds=unixtime) r = str(unixtime) + "(" + dt.strftime('%Y-%m-%dT%H:%M:%SZ') + ")" else: r = str(unixtime) + "(>MAX:" + str(DATETIME_MAX_UNIXTIME) + ")"