Python 字符串转 Date

日期和时间是编程中常用的数据类型之一。在 Python 中,我们经常需要将字符串表示的日期和时间转换为日期对象,以便进行日期操作和计算。本文将介绍如何使用 Python 将字符串转换为日期对象,并提供详细的代码示例。

1. 字符串和日期的互相转换

在 Python 中,可以使用 datetime 模块来处理日期和时间。其官方文档中提供了详细的说明和示例。在字符串和日期之间进行转换的主要方法是使用 strptime()strftime() 函数。

1.1 字符串转日期

要将字符串转换为日期对象,可以使用 strptime() 函数。该函数接受两个参数:要转换的字符串和表示日期格式的字符串。例如,如果要将字符串 "2022-07-20" 转换为日期对象,可以使用以下代码:

from datetime import datetime

date_string = "2022-07-20"
date_object = datetime.strptime(date_string, "%Y-%m-%d")
print(date_object)

输出:

2022-07-20 00:00:00

在上面的代码中,%Y-%m-%d 表示日期的格式,其中 %Y 表示四位数的年份,%m 表示两位数的月份,%d 表示两位数的日期。

1.2 日期转字符串

要将日期对象转换为字符串,可以使用 strftime() 函数。该函数接受一个参数,表示日期的格式。例如,如果要将日期对象转换为字符串 "2022-07-20",可以使用以下代码:

from datetime import datetime

date_object = datetime(2022, 7, 20)
date_string = date_object.strftime("%Y-%m-%d")
print(date_string)

输出:

2022-07-20

在上面的代码中,%Y-%m-%d 表示日期的格式,与 strptime() 函数中的格式相同。

2. 高级日期操作

除了基本的字符串和日期之间的转换外,Python 还提供了丰富的日期操作和计算功能。下面介绍几个常用的高级日期操作。

2.1 计算日期差

要计算两个日期之间的差距(天数、小时数等),可以直接减去两个日期对象。例如,计算两个日期之间的天数差:

from datetime import datetime

date1 = datetime(2022, 7, 20)
date2 = datetime(2022, 7, 25)
delta = date2 - date1
print(delta.days)

输出:

5

在上面的代码中,delta 是一个 timedelta 对象,可以通过 days 属性获取天数差。

2.2 添加或减少日期

要在日期上添加或减少一定的时间间隔,可以使用 timedelta 对象。timedelta 接受三个参数:天数、秒数和微秒数。以下示例将日期加上 3 天:

from datetime import datetime, timedelta

date = datetime(2022, 7, 20)
delta = timedelta(days=3)
new_date = date + delta
print(new_date)

输出:

2022-07-23 00:00:00

在上面的代码中,delta 是一个 timedelta 对象,表示 3 天的时间间隔。

3. 实际应用示例

下面通过一个实际的示例演示如何使用 Python 将字符串转换为日期,并进行日期计算。

from datetime import datetime, timedelta

date_string = "2022-07-20"
date_object = datetime.strptime(date_string, "%Y-%m-%d")
print("输入日期:", date_object)

# 计算未来 10 天的日期
delta = timedelta(days=10)
future_date = date_object + delta
print("未来 10 天的日期:", future_date)

# 计算过去 5 天的日期
delta = timedelta(days=-5)
past_date = date_object + delta
print("过去 5 天的日期:", past_date)

# 计算两个日期之间的天数差
date1 = datetime(2022, 7, 15)
date2 = datetime(2022,