悠闲博客-blog.yxrjt.cn

Python 中的 datetime 模块

更新时间:2025-07-01 00:00点击:94

什么是 datetime 模块?

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

1. 导入 datetime 模块

首先,我们需要导入 datetime 模块。通常我们会导入整个模块,或者只导入我们需要的类和方法。

import datetime1.

或者:

from datetime import datetime, date, time, timedelta1.

2. 获取当前日期和时间

使用 datetime.now() 方法可以获取当前的日期和时间。

# 获取当前日期和时间current_datetime = datetime.datetime.now()print("当前日期和时间:", current_datetime)

4. 创建特定的日期和时间

我们可以使用 datetime 类来创建特定的日期和时间。

# 创建特定的日期和时间specific_datetime = datetime.datetime(2023, 10, 1, 12, 30, 0)print("特定的日期和时间:", specific_datetime)

5. 格式化日期和时间

使用 strftime 方法可以将日期和时间格式化为字符串。

# 格式化日期和时间formatted_datetime = specific_datetime.strftime("%Y-%m-%d %H:%M:%S")print("格式化的日期和时间:", formatted_datetime)

6. 解析日期和时间字符串

使用 strptime 方法可以将字符串解析为日期和时间对象。

# 解析日期和时间字符串parsed_datetime = datetime.datetime.strptime("2023-10-01 12:30:00", "%Y-%m-%d %H:%M:%S")print("解析后的日期和时间:", parsed_datetime)

7. 计算时间差

使用 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)

8. 增加或减少时间

使用 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)

9. 获取日期的各个部分

可以使用 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}")

10. 时间戳

使用 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 模块的基本用法,包括如何获取当前日期和时间、创建特定的日期和时间、格式化和解析日期时间字符串、计算时间差、增加或减少时间、获取日期的各个部分、以及时间戳的转换。



栏目分类

联系方式
  • help@yxrjt.cn
  • lgc@yxrjt.cn
  • admin@yxrjt.cn