Python 中 Datetime.date 类的 fromisoformat() 函数
Python 中的 datetime.date 类提供了一种方便的方式来表示和操作日期。fromisoformat() 方法允许您从 ISO 格式的字符串创建日期对象。
fromisoformat() 函数将解析 ISO 8601 格式的字符串,并创建一个表示该日期的日期对象。这在许多情况下都很有用,例如当您需要从日志文件中解析日期或与以 ISO 8601 格式提供日期的 API 协作时。
语法
datetime.date.fromisoformat(date_string)
参数 date_string 是一个字符串,表示 ISO 格式“YYYY-MM-DD”的日期。
示例 1
我们将使用 fromisoformat() 方法从字符串创建日期对象。
算法
加载 datetime 模块
初始化一个包含 ISO 格式日期的字符串变量
使用 fromisoformat() 函数将字符串转换为日期对象
打印日期对象
from datetime import date # date passed as string data type date_string = "2023-03-31" # Converts string object to a date object date_obj = date.fromisoformat(date_string) print(date_obj)
输出
2023-03-31
当调用 fromisoformat() 时,ISO 格式的字符串作为参数传递给该函数,该函数严格遵循“YYYY-MM-DD”格式。该字符串会被解析,并且日期组件(年、月和日)会被提取。类似地,时间也可以通过小时、分钟和秒来提取。如果解析的字符串严格遵循 ISO 8601 格式,则会返回一个等效的 datetime 对象。
如果遵循的格式不符合 ISO 格式,则会引发 ValueError。这表示月、日和年没有按照正确的顺序排列或超出预期范围。
示例 2
以下示例将存储在列表中的多个字符串对象(日期)转换为日期对象。
算法
导入 datetime 模块
定义一个包含多个 ISO 格式字符串的列表变量
创建一个空列表来存储日期对象
循环遍历列表中的每个字符串,并使用 fromisoformat() 函数将其转换为日期对象
将日期对象追加到列表中
将列表打印给用户
import datetime date_strs = ['2022-01-01', '2022-01-02', '2022-01-03'] date_objs = [] for date_str in date_strs: date_objs.append(datetime.date.fromisoformat(date_str)) print(date_objs)
输出
[datetime.date(2022, 1, 1), datetime.date(2022, 1, 2), datetime.date(2022, 1, 3)]
示例 3
以下示例将存储在字符串中的今天日期和当前时间转换为日期对象。
算法
导入 datetime 和 time 模块
使用 date.today() 获取今天日期的字符串表示
打印 ISO 格式的今天日期字符串
使用 date.fromisoformat() 函数将今天转换为日期对象。
将日期对象打印给用户。
from datetime import date today= str(date.today()); print("Today's Date as string: %s" %today) mydate = date.fromisoformat(today); print(mydate);
输出
Today's Date as string: 2023-05-20 2023-05-20
结论
使用此函数可以轻松高效地将包含 ISO 格式日期的字符串转换为日期对象,以便于进一步操作。
使用 fromisoformat() 函数可以避免手动解析 ISO 格式字符串,而手动解析容易出错。此外,此函数确保生成的日期对象有效且符合 ISO 标准。
此外,Python 的 datetime 模块包含 fromisoformat() 函数,并提供了一系列用于处理日期和时间的实用程序。此模块允许我们格式化日期、在不同的时区之间转换以及执行各种日期和时间计算。