Python 的 datetime
模块提供了处理日期和时间的类和函数,非常强大且易于使用。以下是对 datetime
模块的主要功能和类的总结:
1. 主要类
datetime
模块包含以下几个主要类:
-
datetime.date
:表示日期,包含年、月、日。 -
datetime.time
:表示时间,包含时、分、秒、微秒。 -
datetime.datetime
:表示日期和时间的组合。 -
datetime.timedelta
:表示两个日期或时间之间的差异,通常用于日期和时间的计算。 -
datetime.tzinfo
:用于处理时区信息的抽象基类。
2. datetime.date
类
-
创建日期对象:
Python复制
from datetime import date d = date(2024, 4, 13) # 创建日期对象
-
获取当前日期:
Python复制
today = date.today() # 获取当前日期
-
日期属性:
Python复制
year = d.year # 获取年份 month = d.month # 获取月份 day = d.day # 获取日
-
日期计算:
Python复制
from datetime import timedelta delta = timedelta(days=1) tomorrow = d + delta # 计算明天的日期 yesterday = d - delta # 计算昨天的日期
3. datetime.time
类
-
创建时间对象:
Python复制
from datetime import time t = time(12, 30, 45) # 创建时间对象
-
时间属性:
Python复制
hour = t.hour # 获取小时 minute = t.minute # 获取分钟 second = t.second # 获取秒 microsecond = t.microsecond # 获取微秒
4. datetime.datetime
类
-
创建日期时间对象:
Python复制
from datetime import datetime dt = datetime(2024, 4, 13, 12, 30, 45) # 创建日期时间对象
-
获取当前日期时间:
Python复制
now = datetime.now() # 获取当前日期和时间 today = datetime.today() # 获取当前日期和时间(与 now 类似)
-
日期时间属性:
Python复制
year = dt.year # 获取年份 month = dt.month # 获取月份 day = dt.day # 获取日 hour = dt.hour # 获取小时 minute = dt.minute # 获取分钟 second = dt.second # 获取秒 microsecond = dt.microsecond # 获取微秒
-
日期时间计算:
Python复制
from datetime import timedelta delta = timedelta(days=1, hours=2, minutes=30) future_dt = dt + delta # 计算未来的日期时间 past_dt = dt - delta # 计算过去的日期时间
-
日期时间格式化:
Python复制
formatted_dt = dt.strftime('%Y-%m-%d %H:%M:%S') # 格式化日期时间
-
解析日期时间字符串:
Python复制
dt_from_str = datetime.strptime('2024-04-13 12:30:45', '%Y-%m-%d %H:%M:%S') # 从字符串解析日期时间
5. datetime.timedelta
类
-
创建时间间隔对象:
Python复制
from datetime import timedelta delta = timedelta(days=1, seconds=3600, microseconds=1000) # 创建时间间隔对象
-
时间间隔属性:
Python复制
days = delta.days # 获取天数 seconds = delta.seconds # 获取秒数 microseconds = delta.microseconds # 获取微秒数
6. 时区处理
-
使用
pytz
库处理时区:Python复制
from datetime import datetime import pytz # 创建时区对象 eastern = pytz.timezone('US/Eastern') utc = pytz.utc # 创建带时区的日期时间对象 dt_eastern = datetime.now(eastern) dt_utc = dt_eastern.astimezone(utc) print(dt_eastern) # 输出带时区的日期时间 print(dt_utc) # 输出转换为 UTC 时区的日期时间
7. 常用函数
-
datetime.timedelta
的total_seconds
方法:Python复制
total_seconds = delta.total_seconds() # 获取时间间隔的总秒数
8. 示例代码
以下是一个综合示例,展示了如何使用 datetime
模块的多个功能:
Python复制
from datetime import datetime, timedelta, date, time
import pytz
# 创建日期对象
d = date(2024, 4, 13)
print(f"日期: {d}")
# 获取当前日期
today = date.today()
print(f"当前日期: {today}")
# 创建时间对象
t = time(12, 30, 45)
print(f"时间: {t}")
# 创建日期时间对象
dt = datetime(2024, 4, 13, 12, 30, 45)
print(f"日期时间: {dt}")
# 获取当前日期时间
now = datetime.now()
print(f"当前日期时间: {now}")
# 日期时间计算
delta = timedelta(days=1, hours=2, minutes=30)
future_dt = dt + delta
past_dt = dt - delta
print(f"未来的日期时间: {future_dt}")
print(f"过去的日期时间: {past_dt}")
# 日期时间格式化
formatted_dt = dt.strftime('%Y-%m-%d %H:%M:%S')
print(f"格式化的日期时间: {formatted_dt}")
# 从字符串解析日期时间
dt_from_str = datetime.strptime('2024-04-13 12:30:45', '%Y-%m-%d %H:%M:%S')
print(f"从字符串解析的日期时间: {dt_from_str}")
# 时区处理
eastern = pytz.timezone('US/Eastern')
utc = pytz.utc
dt_eastern = datetime.now(eastern)
dt_utc = dt_eastern.astimezone(utc)
print(f"带时区的日期时间 (Eastern): {dt_eastern}")
print(f"转换为 UTC 时区的日期时间: {dt_utc}")
希望这些总结和示例能帮助你更好地理解和使用 datetime
模块!