📅  最后修改于: 2023-12-03 15:34:14.712000             🧑  作者: Mango
在Python中使用datetime
库操作日期和时间非常方便。其中date
类用于表示日期。fromisoformat()
函数是date
类中的一个方法,用于将ISO格式的日期字符串转换为date
对象。
classmethod date.fromisoformat(date_string)
其中,date_string
为ISO格式的日期字符串。
from datetime import date
# 从ISO格式日期字符串创建date对象
d = date.fromisoformat('2021-12-31')
print(d) # 2021-12-31
需要注意的是,fromisoformat()
函数严格遵守ISO 8601标准,不允许出现时区信息和时分秒信息。
# Error: 该字符串包含时区信息
date.fromisoformat('2021-12-31T00:00:00+08:00')
# Error: 该字符串包含时分秒信息
date.fromisoformat('2021-12-31 00:00:00')
这时需要使用datetime.datetime.strptime()
函数将字符串转换为日期。例如:
from datetime import datetime
# 从字符串创建datetime对象
dt = datetime.strptime('2021-12-31T00:00:00+08:00', '%Y-%m-%dT%H:%M:%S%z')
# 从datetime对象获取date对象
d = dt.date()
print(d) # 2021-12-31
date.fromisoformat()
函数可以很方便地将ISO格式的日期字符串转换为date
对象,但需要注意字符串符合ISO 8601标准。如果不符合标准,需要使用datetime.datetime.strptime()
函数将字符串转换为datetime
对象再获取date
对象。