diff --git a/backend/utils/timezone.py b/backend/utils/timezone.py index 30fdbafa..8a387e1b 100644 --- a/backend/utils/timezone.py +++ b/backend/utils/timezone.py @@ -5,11 +5,17 @@ from datetime import timezone as datetime_timezone from backend.core.conf import settings +# 基于 wikipedia:https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List +_UTC_IDENTIFIERS = frozenset({'Etc/UCT', 'Etc/Universal', 'Etc/UTC', 'Etc/Zulu', 'UCT', 'Universal', 'UTC', 'Zulu'}) + class TimeZone: def __init__(self) -> None: """初始化时区转换器""" - self.tz_info = zoneinfo.ZoneInfo(settings.DATETIME_TIMEZONE) + if settings.DATETIME_TIMEZONE in _UTC_IDENTIFIERS: + self.tz_info = datetime_timezone.utc + else: + self.tz_info = zoneinfo.ZoneInfo(settings.DATETIME_TIMEZONE) def now(self) -> datetime: """获取当前时区时间"""