date 类
创建日期对象
from datetime import date
# 当前日期
today = date.today()
print("Today:", today) # 输出:2023-10-05 (示例)
# 指定日期
specific_date = date(2023, 12, 25)
print("Christmas:", specific_date) # 输出:2023-12-25
获取日期属性
print("Year:", today.year) # 输出:2023
print("Month:", today.month) # 输出:10
print("Day:", today.day) # 输出:5
日期格式化
formatted_date = today.strftime("%Y/%m/%d")
print("Formatted Date:", formatted_date) # 输出:2023/10/05
time 类
创建时间对象
from datetime import time
# 指定时间
specific_time = time(14, 30, 45)
print("Time:", specific_time) # 输出:14:30:45
获取时间属性
print("Hour:", specific_time.hour) # 输出:14
print("Minute:", specific_time.minute) # 输出:30
print("Second:", specific_time.second) # 输出:45
时间格式化
formatted_time = specific_time.strftime("%H:%M:%S")
print("Formatted Time:", formatted_time) # 输出:14:30:45
datetime 类
创建日期时间对象
from datetime import datetime
# 当前日期时间
now = datetime.now()
print("Now:", now) # 输出:2023-10-05 14:30:45.123456 (示例)
# 指定日期时间
specific_datetime = datetime(2023, 12, 25, 18, 30)
print("Christmas Evening:", specific_datetime) # 输出:2023-12-25 18:30:00
获取日期时间属性
print("Year:", now.year) # 输出:2023
print("Month:", now.month) # 输出:10
print("Day:", now.day) # 输出:5
print("Hour:", now.hour) # 输出:14
print("Minute:", now.minute) # 输出:30
print("Second:", now.second) # 输出:45
print("Microsecond:", now.microsecond) # 输出:123456
日期时间格式化
formatted_datetime = now.strftime("%Y-%m-%d %H:%M:%S")
print("Formatted Datetime:", formatted_datetime) # 输出:2023-10-05 14:30:45
timedelta 类
timedelta
类用于表示时间间隔
计算时间差
from datetime import timedelta
# 当前时间
now = datetime.now()
# 10天后的时间
future_date = now + timedelta(days=10)
print("Future Date:", future_date)
# 2小时前的时间
past_time = now - timedelta(hours=2)
print("Past Time:", past_time)
时间差属性
delta = timedelta(days=5, hours=3)
print("Days:", delta.days) # 输出:5
print("Seconds:", delta.seconds) # 输出:10800 (3小时的秒数)
实际应用示例
计算日期差
from datetime import date
# 计算两个日期的差值
date1 = date(2023, 10, 5)
date2 = date(2023, 12, 25)
delta = date2 - date1
print("Days between dates:", delta.days) # 输出:81
任务调度
from datetime import datetime, timedelta
# 当前时间
now = datetime.now()
# 下一次任务执行时间(1小时后)
next_run = now + timedelta(hours=1)
print("Next run at:", next_run)
格式化日志时间戳
from datetime import datetime
# 生成日志时间戳
log_timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
print(f"[{log_timestamp}] Log message: Hello, World!")
处理时区
from datetime import datetime, timezone, timedelta
# 创建带时区的日期时间
utc_time = datetime.now(timezone.utc)
beijing_time = utc_time.astimezone(timezone(timedelta(hours=8)))
print("Beijing Time:", beijing_time)