更新时间:2025-07-01 00:00点击:94
datetime 模块是 Python 标准库中的一个模块,用于处理日期和时间。它提供了多种类和方法,帮助我们轻松地创建、操作和格式化日期和时间。

首先,我们需要导入 datetime 模块。通常我们会导入整个模块,或者只导入我们需要的类和方法。
或者:
使用 datetime.now() 方法可以获取当前的日期和时间。
# 获取当前日期和时间current_datetime = datetime.datetime.now()print("当前日期和时间:", current_datetime)我们可以使用 datetime 类来创建特定的日期和时间。
# 创建特定的日期和时间specific_datetime = datetime.datetime(2023, 10, 1, 12, 30, 0)print("特定的日期和时间:", specific_datetime)使用 strftime 方法可以将日期和时间格式化为字符串。
# 格式化日期和时间formatted_datetime = specific_datetime.strftime("%Y-%m-%d %H:%M:%S")print("格式化的日期和时间:", formatted_datetime)使用 strptime 方法可以将字符串解析为日期和时间对象。
# 解析日期和时间字符串parsed_datetime = datetime.datetime.strptime("2023-10-01 12:30:00", "%Y-%m-%d %H:%M:%S")print("解析后的日期和时间:", parsed_datetime)使用 timedelta 类可以计算两个日期或时间之间的差值。
# 计算时间差start_time = datetime.datetime(2023, 10, 1, 12, 0, 0)end_time = datetime.datetime(2023, 10, 1, 12, 30, 0)time_difference = end_time - start_timeprint("时间差:", time_difference)使用 timedelta 类可以增加或减少日期和时间。
# 增加时间new_time = start_time + datetime.timedelta(hours=2)print("增加2小时后的时间:", new_time)# 减少时间old_time = end_time - datetime.timedelta(minutes=15)print("减少15分钟后的时间:", old_time)可以使用 year, month, day, hour, minute, second 属性来获取日期和时间的各个部分。
# 获取日期和时间的各个部分year = specific_datetime.yearmonth = specific_datetime.monthday = specific_datetime.dayhour = specific_datetime.hourminute = specific_datetime.minutesecond = specific_datetime.secondprint(f"年: {year}, 月: {month}, 日: {day}, 时: {hour}, 分: {minute}, 秒: {second}")使用 timestamp 方法可以将日期和时间转换为时间戳,使用 fromtimestamp 方法可以将时间戳转换为日期和时间。
# 将日期和时间转换为时间戳timestamp = specific_datetime.timestamp()print("时间戳:", timestamp)# 将时间戳转换为日期和时间from_timestamp = datetime.datetime.fromtimestamp(timestamp)print("从时间戳转换的日期和时间:", from_timestamp)假设我们要开发一个简单的日程管理器,用户可以输入任务的名称、开始时间和结束时间,程序会计算任务的持续时间并显示所有任务。
import datetimeclass Task: def __init__(self, name, start_time, end_time): self.name = name self.start_time = datetime.datetime.strptime(start_time, "%Y-%m-%d %H:%M:%S") self.end_time = datetime.datetime.strptime(end_time, "%Y-%m-%d %H:%M:%S") def duration(self): return self.end_time - self.start_time def __str__(self): return (f"任务: {self.name}/n" f"开始时间: {self.start_time.strftime('%Y-%m-%d %H:%M:%S')}/n" f"结束时间: {self.end_time.strftime('%Y-%m-%d %H:%M:%S')}/n" f"持续时间: {self.duration()}")def main(): tasks = [] while True: name = input("请输入任务名称(输入'q'退出): ") if name.lower() == 'q': break start_time = input("请输入开始时间(格式: YYYY-MM-DD HH:MM:SS): ") end_time = input("请输入结束时间(格式: YYYY-MM-DD HH:MM:SS): ") task = Task(name, start_time, end_time) tasks.append(task) print("/n所有任务:") for task in tasks: print(task)if __name__ == "__main__": main()本文介绍了 datetime 模块的基本用法,包括如何获取当前日期和时间、创建特定的日期和时间、格式化和解析日期时间字符串、计算时间差、增加或减少时间、获取日期的各个部分、以及时间戳的转换。