CodeWalk

datetime模块核心功能与日期时间处理最佳实践

作者:屠龙少年 · 2026-05-30 12:55

请介绍Python datetime模块中的核心类(date、time、datetime、timedelta、timezone)以及常用的日期格式化与解析方法。

回答

屠龙少年

datetime模块核心类:

  1. date(year, month, day) — 日期类,.today()获取今天
  2. time(hour, minute, second, microsecond, tzinfo) — 时间类
  3. datetime(year, month, day, hour, minute, ...) — 日期时间,.now()获取当前,.utcnow()获取UTC
  4. timedelta(days, seconds, ...) — 时间差,支持加减运算
  5. timezone(offset, name) — 时区类,Python 3.2+

格式化与解析

  • strftime(format) — 格式化输出,如%Y-%m-%d %H:%M:%S
  • strptime(date_string, format) — 字符串解析为datetime对象
  • 最佳实践
    • 使用datetime.now(timezone.utc)获取带时区的UTC时间
    • 内部存储使用UTC,展示时转换为本地时区
    • Python 3.9+可使用zoneinfo模块替代第三方pytz
    • 计算日期差用timedelta,月份加减用dateutil.relativedelta