📅  最后修改于: 2023-12-03 15:38:44.313000             🧑  作者: Mango
在 Python 中,日期和时间可以以多种格式表示。其中一种常用的格式是 ISO 8601 格式,它使用类似 "2022-08-25T19:30:12.123456Z" 这样的字符串来表示日期和时间。
datetime 对象提供了 .isoformat()
方法,可以将日期时间对象格式化成 ISO 8601 格式的字符串。例如:
from datetime import datetime
now = datetime.now()
date_str = now.isoformat()
print(date_str) # "2022-08-25T19:30:12.123456"
如果我们有一个以 ISO 8601 格式表示的字符串,想要将其转换回日期时间对象,可以使用 datetime 模块中的 datetime.fromisoformat()
方法。例如:
from datetime import datetime
date_str = "2022-08-25T19:30:12.123456"
dt_obj = datetime.fromisoformat(date_str)
print(dt_obj) # datetime.datetime(2022, 8, 25, 19, 30, 12, 123456)
需要注意的是,datetime.fromisoformat()
方法接受的字符串格式必须是有效的 ISO 8601 格式。如果字符串格式不正确,会抛出 ValueError
异常。
如果你使用的 Python 版本太旧,不支持 datetime.fromisoformat()
方法,可以自己实现一个函数来解析 ISO 8601 格式的字符串。例如:
from datetime import datetime, timedelta
def iso_to_datetime(iso_str):
dt_str, us_str = iso_str[:-6], iso_str[-6:]
dt_obj = datetime.strptime(dt_str, '%Y-%m-%dT%H:%M:%S')
us_int = int(us_str.lstrip('0'))
us_obj = timedelta(microseconds=us_int)
return dt_obj + us_obj
date_str = "2022-08-25T19:30:12.123456"
dt_obj = iso_to_datetime(date_str)
print(dt_obj) # datetime.datetime(2022, 8, 25, 19, 30, 12, 123456)
以上就是将 Python 的 .isoformat()
字符串转换为日期时间对象的方法。希望对你有所帮助!