Python的datetime
库是一个非常强大的模块,用于处理日期和时间数据。它提供了一系列的类来表示日期(date
)、时间(time
)、日期时间组合(datetime
)、时间间隔(timedelta
)以及时区信息(tzinfo
)。下面是一些核心类和它们的常见API及其使用场景和示例:
1. datetime.date
功能:表示日期,不包含时间部分。
API示例:
today()
:返回当前日期。fromisoformat(date_string)
:从ISO格式的字符串中创建日期对象。strftime(format)
:将日期格式化为字符串。
使用场景:记录事件发生的具体日期,如生日、会议日期等。
示例:
from datetime import date
# 获取今天的日期
today = date.today()
print("今天是:", today)
# 创建特定日期
birthday = date.fromisoformat('2000-04-27')
print("生日是:", birthday)
# 格式化日期输出
formatted_birthday = birthday.strftime('%Y年%m月%d日')
print("格式化后的生日:", formatted_birthday)
2. datetime.time
功能:表示时间,不包含日期部分。
API示例:
hour
,minute
,second
,microsecond
:获取时间的各个部分。strftime(format)
:将时间格式化为字符串。
使用场景:记录事件的具体时间,如开馆时间、关门时间等。
示例:
from datetime import time
# 创建特定时间
opening_time = time(10, 30, 0)
print("开门时间是:", opening_time.strftime('%H:%M'))
# 获取时间的小时和分钟
hour, minute = opening_time.hour, opening_time.minute
print(f"小时: {hour}, 分钟: {minute}")
3. datetime.datetime
功能:同时表示日期和时间。
API示例:
now()
:返回当前日期和时间。strptime(date_string, format)
:根据指定格式将字符串解析为datetime对象。timestamp()
:将datetime对象转换为时间戳。
使用场景:记录精确的时间点,如交易时间、文章发表时间等。
示例:
from datetime import datetime
# 获取当前日期和时间
now = datetime.now()
print("现在是:", now)
# 解析字符串为datetime对象
event_time_str = '2024-04-27 15:45:30'
event_time = datetime.strptime(event_time_str, '%Y-%m-%d %H:%M:%S')
print("活动时间是:", event_time)
# 计算时间差并转换为秒
another_time = datetime(2024, 5, 1, 10, 0, 0)
time_diff = another_time - now
seconds_diff = time_diff.total_seconds()
print("距离下一个事件还有:", seconds_diff, "秒")
4. datetime.timedelta
功能:表示两个日期或时间之间的差值,即时间间隔。
API示例:
days
,seconds
,microseconds
:获取时间间隔的各部分。total_seconds()
:返回总秒数。
使用场景:计算时间跨度,如计算年龄、任务持续时间等。
示例:
from datetime import timedelta
# 创建时间间隔
one_day = timedelta(days=1)
half_hour = timedelta(minutes=30)
# 计算两天半的时间间隔
two_and_half_days = one_day * 2 + half_hour
print("两天半的时间间隔是:", two_and_half_days)
以上示例覆盖了datetime
库中最基本且常用的类和方法,帮助你理解和掌握日期时间处理的基本操作。