Python 日期和时间处理教程:datetime 模块的使用


datetime 模块是 Python 标准库中的一个模块,用于处理日期和时间。这个模块提供了多种方法和类来创建、操作和格式化日期和时间。以下是 datetime 模块的详细教程。

1. 导入 datetime 模块

import datetime

2. 获取当前日期和时间

获取当前日期和时间

now = datetime.datetime.now()
print(now)  # 输出格式如:2024-06-05 14:23:12.345678

获取当前日期

today = datetime.date.today()
print(today)  # 输出格式如:2024-06-05

3. 创建日期和时间对象

创建日期对象

date = datetime.date(2024, 6, 5)
print(date)  # 输出:2024-06-05

创建时间对象

time = datetime.time(14, 23, 45)
print(time)  # 输出:14:23:45

创建日期时间对象

datetime_obj = datetime.datetime(2024, 6, 5, 14, 23, 45)
print(datetime_obj)  # 输出:2024-06-05 14:23:45

4. 格式化日期和时间

使用 strftime 方法

strftime 方法用于将日期时间对象格式化为字符串。

now = datetime.datetime.now()
formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_date)  # 输出格式如:2024-06-05 14:23:12

常用格式化代码:

  • %Y:四位数的年份
  • %m:两位数的月份(01-12)
  • %d:两位数的日期(01-31)
  • %H:两位数的小时(24小时制,00-23)
  • %M:两位数的分钟(00-59)
  • %S:两位数的秒(00-59)

5. 解析字符串为日期和时间

使用 strptime 方法

strptime 方法用于将字符串解析为日期时间对象。

date_str = "2024-06-05 14:23:45"
date_obj = datetime.datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")
print(date_obj)  # 输出:2024-06-05 14:23:45

6. 日期和时间的加减

使用 timedelta 对象

timedelta 对象表示两个日期或时间之间的差。

from datetime import timedelta

now = datetime.datetime.now()
print("现在时间:", now)

# 加一天
tomorrow = now + timedelta(days=1)
print("明天的这个时间:", tomorrow)

# 减一小时
one_hour_ago = now - timedelta(hours=1)
print("一小时前的这个时间:", one_hour_ago)

7. 日期时间的比较

可以直接比较两个日期时间对象。

date1 = datetime.datetime(2024, 6, 5, 14, 23, 45)
date2 = datetime.datetime(2023, 6, 5, 14, 23, 45)

print(date1 > date2)  # 输出:True
print(date1 < date2)  # 输出:False
print(date1 == date2)  # 输出:False

8. 获取日期的各个部分

获取年、月、日、时、分、秒

now = datetime.datetime.now()

print("年:", now.year)
print("月:", now.month)
print("日:", now.day)
print("时:", now.hour)
print("分:", now.minute)
print("秒:", now.second)

9. 示例

假设我们需要编写一个脚本来计算两个日期之间的天数差,并将当前日期和时间格式化为指定的字符串。

import datetime

# 计算两个日期之间的天数差
date1 = datetime.date(2024, 6, 5)
date2 = datetime.date(2023, 6, 5)
delta = date1 - date2
print(f"两个日期之间的天数差: {delta.days} 天")

# 获取当前日期和时间,并格式化为指定的字符串
now = datetime.datetime.now()
formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
print(f"当前日期和时间: {formatted_date}")

运行该脚本的输出可能如下:

两个日期之间的天数差: 366 天
当前日期和时间: 2024-06-05 14:23:12

以上就是 Python 中使用 datetime 模块处理日期和时间的基本方法和示例。通过掌握这些基本操作,你可以轻松处理各种日期和时间相关的任务。


原文链接:codingdict.net