| 123456789101112131415161718192021222324252627 |
- """
- 时区工具函数
- """
- from datetime import datetime, timezone, timedelta
- def get_beijing_time() -> datetime:
- """获取当前北京时间 (UTC+8)"""
- beijing_tz = timezone(timedelta(hours=8))
- return datetime.now(beijing_tz)
- def beijing_now() -> datetime:
- """获取当前北京时间 (UTC+8) - 别名函数"""
- return get_beijing_time()
- def datetime_to_beijing(dt: datetime) -> datetime:
- """将datetime对象转换为北京时间"""
- if dt.tzinfo is None:
- # 如果是naive datetime,假设它是本地时间,转换为北京时间
- beijing_tz = timezone(timedelta(hours=8))
- return dt.replace(tzinfo=timezone.utc).astimezone(beijing_tz)
- else:
- # 如果已经有时区信息,直接转换为北京时间
- beijing_tz = timezone(timedelta(hours=8))
- return dt.astimezone(beijing_tz)
|