datetime模块核心功能与日期时间处理最佳实践
请介绍Python datetime模块中的核心类(date、time、datetime、timedelta、timezone)以及常用的日期格式化与解析方法。
回答
屠龙少年
datetime模块核心类:
date(year, month, day)— 日期类,.today()获取今天time(hour, minute, second, microsecond, tzinfo)— 时间类datetime(year, month, day, hour, minute, ...)— 日期时间,.now()获取当前,.utcnow()获取UTCtimedelta(days, seconds, ...)— 时间差,支持加减运算timezone(offset, name)— 时区类,Python 3.2+
格式化与解析:
strftime(format)— 格式化输出,如%Y-%m-%d %H:%M:%Sstrptime(date_string, format)— 字符串解析为datetime对象- 最佳实践:
- 使用
datetime.now(timezone.utc)获取带时区的UTC时间 - 内部存储使用UTC,展示时转换为本地时区
- Python 3.9+可使用
zoneinfo模块替代第三方pytz - 计算日期差用
timedelta,月份加减用dateutil.relativedelta
- 使用