From 9c7f4dfd1a7f2d01bc21ac68903880edac81a57a Mon Sep 17 00:00:00 2001 From: Thomas Oettli Date: Thu, 22 Jan 2026 21:56:12 +0100 Subject: [PATCH] Store timestamps in UTC and print in localtime --- src/ddns_service/__init__.py | 13 +++++++++++-- src/ddns_service/cleanup.py | 2 +- src/ddns_service/server.py | 2 +- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/ddns_service/__init__.py b/src/ddns_service/__init__.py index 888cddf..04e7062 100644 --- a/src/ddns_service/__init__.py +++ b/src/ddns_service/__init__.py @@ -5,6 +5,8 @@ A daemon that accepts HTTP(S) requests to dynamically update DNS entries. Includes CLI administration tools for user and hostname management. """ +import datetime + __version__ = "1.0.0" __author__ = "Thomas Oettli " @@ -23,6 +25,13 @@ __all__ = [ "server", ] +DATETIME_FORMAT = "%Y-%m-%d %H:%M:%S %Z" -def datetime_str(datetime): - return datetime.strftime("%Y-%m-%d %H:%M:%S") +def datetime_str(dt, utc=False): + if not isinstance(dt, datetime.datetime): + return "Never" + + if utc: + return timestamp.strftime(DATETIME_FORMAT) + else: + return timestamp.astimezone().strftime(DATETIME_FORMAT) diff --git a/src/ddns_service/cleanup.py b/src/ddns_service/cleanup.py index 936692d..5a67750 100644 --- a/src/ddns_service/cleanup.py +++ b/src/ddns_service/cleanup.py @@ -17,7 +17,7 @@ def cleanup_expired(app): Returns: Number of expired hostnames processed. """ - now = datetime.now() + now = datetime.now(datetime.timezone.utc) expired_count = 0 for hostname in Hostname.select().join(User).where( diff --git a/src/ddns_service/server.py b/src/ddns_service/server.py index 12035f7..33f93b5 100644 --- a/src/ddns_service/server.py +++ b/src/ddns_service/server.py @@ -316,7 +316,7 @@ class DDNSRequestHandler(BaseHTTPRequestHandler): except ValueError: return (400, "badip") - now = datetime.now() + now = datetime.now(datetime.timezone.utc) changed = False if ipv4: