python之datetime

作者: long | 2025-03-17

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)