====== 第二十四章:datetime模块 ====== ===== 本章目标 ===== 完成本章学习后,你将能够: * 处理日期和时间 * 进行时区转换 * 格式化日期时间 * 计算时间差 ===== 日期时间基础 ===== from datetime import datetime, date, time, timedelta # 当前日期时间 now = datetime.now() print(now) # 2024-01-15 10:30:45.123456 # 当前日期 today = date.today() print(today) # 2024-01-15 # 创建特定日期时间 dt = datetime(2024, 1, 15, 10, 30, 0) d = date(2024, 1, 15) t = time(10, 30, 0) ===== 格式化与解析 ===== from datetime import datetime # 格式化 dt = datetime.now() print(dt.strftime("%Y-%m-%d %H:%M:%S")) # 2024-01-15 10:30:45 print(dt.strftime("%A, %B %d, %Y")) # Monday, January 15, 2024 # 解析 dt = datetime.strptime("2024-01-15", "%Y-%m-%d") # ISO格式 dt = datetime.fromisoformat("2024-01-15T10:30:00") print(dt.isoformat()) ===== 时间计算 ===== from datetime import datetime, timedelta now = datetime.now() # 加减时间 future = now + timedelta(days=7, hours=3) past = now - timedelta(weeks=1) # 时间差 diff = future - now print(diff.days) # 7 print(diff.seconds) # 10800 (3小时) print(diff.total_seconds()) # 比较 print(future > now) # True ===== 时区处理 ===== from datetime import datetime, timezone, timedelta import pytz # 第三方库 # UTC时间 utc = datetime.now(timezone.utc) # 创建时区 china_tz = timezone(timedelta(hours=8)) beijing = datetime.now(china_tz) # 使用pytz ny_tz = pytz.timezone('America/New_York') ny_time = datetime.now(ny_tz) # 时区转换 utc_time = datetime.now(pytz.UTC) beijing_time = utc_time.astimezone(pytz.timezone('Asia/Shanghai')) ===== 本章练习 ===== 1. 实现日期计算器 2. 实现倒计时功能 3. 处理时区转换 4. 解析各种日期格式 下一章:[[python_course:chapter25|第二十五章:collections与itertools]]