我被困在如何将这个强转换为datetime对象。这是我尝试过的:
import datetime
date_time_str = "2021-07-28 11:19:36.824150+00:00"
date_time_obj = datetime.datetime.strptime(date_time_str, '%y-%m-%d %H:%M:%S.%f%z')
然而,我总是收到
ValueError: time data '2021-07-28 11:19:36.824150+00:00' does not match format.
正确的格式是什么?
关于文档
%y
表示2位数年份%Y
表示4位数年份
使用'%Y-%m-%d %H:%M:%S.%f%z'
date_time_obj = datetime.strptime(date_time_str, '%Y-%m-%d %H:%M:%S.%f%z')
或者使用fromisoformat
date_time_obj = datetime.fromisoformat(date_time_str)
你的问题不是时区,而是年份。您应该使用%Y
而不是%y
:
>>> import datetime
>>> date_time_str = "2021-07-28 11:19:36.824150+00:00"
>>> date_time_obj = datetime.datetime.strptime(date_time_str, '%Y-%m-%d %H:%M:%S.%f%z')
>>> date_time_obj
datetime.datetime(2021, 7, 28, 11, 19, 36, 824150, tzinfo=datetime.timezone.utc)
您的问题是使用%y而不是%y
(参见参考:https://www.programiz.com/python-programming/datetime/strptime)
date_time_str = "2021-07-28 11:19:36.824150+00:00"
date_time_obj = datetime.datetime.strptime(date_time_str, '%Y-%m-%d %H:%M:%S.%f%z')