fix: standardize UTC timestamp handling

This commit is contained in:
2026-07-08 10:07:08 +08:00
parent 22dd364405
commit 8d347cfbc2
8 changed files with 77 additions and 24 deletions
+10 -1
View File
@@ -5,6 +5,15 @@ from zoneinfo import ZoneInfo, ZoneInfoNotFoundError
DEFAULT_TIMEZONE = "Asia/Shanghai"
DATETIME_DISPLAY_FORMAT = "%Y-%m-%d %H:%M:%S"
def utc_now() -> datetime:
return datetime.now(timezone.utc).replace(tzinfo=None)
def current_year_for_timezone(timezone_name: str | None) -> int:
return datetime.now(timezone.utc).astimezone(timezone_for_name(timezone_name)).year
def timezone_for_name(name: str | None) -> ZoneInfo:
@@ -19,4 +28,4 @@ def format_datetime_for_timezone(value: datetime | None, timezone_name: str | No
return "-"
if value.tzinfo is None:
value = value.replace(tzinfo=timezone.utc)
return value.astimezone(timezone_for_name(timezone_name)).strftime("%Y-%m-%d %H:%M:%S")
return value.astimezone(timezone_for_name(timezone_name)).strftime(DATETIME_DISPLAY_FORMAT)