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()功能,并提供大量用于处理日期和时间的实用工具。该模块允许我们对日期进行格式化、在不同的时区之间进行转换,并执行各种日期和时间计算。