我被困在如何将这个强转换为日期时间对象。这是我试过的:
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: 时间数据 '2021-07-28 11:19:36.824150+00:00' 格式不匹配。
正确的格式是什么?
答案 0 :(得分:3)
您的问题不是时区,而是年份。您应该使用 %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)
答案 1 :(得分:3)
关于doc
%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)
答案 2 :(得分:0)
您的问题是您使用了 %y 而不是 %Y
(见参考:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/environments?view=aspnetcore-5.0)
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')