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,