22 lines
671 B
Python

from __future__ import annotations
from datetime import UTC, datetime, timedelta, timezone
from zoneinfo import ZoneInfo, ZoneInfoNotFoundError
def resolve_timezone(timezone_name: str):
try:
return ZoneInfo(timezone_name)
except ZoneInfoNotFoundError:
fallback_mapping = {
"Asia/Shanghai": timezone(timedelta(hours=8)),
"Asia/Hong_Kong": timezone(timedelta(hours=8)),
"UTC": UTC,
}
return fallback_mapping.get(timezone_name, UTC)
def format_now(timezone_name: str) -> str:
current = datetime.now(resolve_timezone(timezone_name))
return current.strftime("%Y-%m-%d %H:%M:%S.%f")[:-3]