第二十四章: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. 解析各种日期格式