为什么即使格式匹配,{date}2016-11-22T11:49:21.826-05:00的python日期时间也会失败
我试图在Python3.6中格式化日期时间,如下所示:为什么即使格式匹配,{date}2016-11-22T11:49:21.826-05:00的python日期时间也会失败,python,python-3.x,datetime,Python,Python 3.x,Datetime,我试图在Python3.6中格式化日期时间,如下所示: datetime.datetime.strptime(date_string, "{Date}%Y-%m-%dT%H:%M:%S.%f%z") 但是,输入字符串{Date}2016-11-22T11:49:21.826-05:00的格式设置失败,出现以下错误 如果您不介意使用名为dateutil的附加Python包,可以执行以下操作: from dateutil.parser import parse ds = '2016-11-22T1
datetime.datetime.strptime(date_string, "{Date}%Y-%m-%dT%H:%M:%S.%f%z")
但是,输入字符串{Date}2016-11-22T11:49:21.826-05:00的格式设置失败,出现以下错误
如果您不介意使用名为dateutil
的附加Python包,可以执行以下操作:
from dateutil.parser import parse
ds = '2016-11-22T11:49:21.826-05:00'
print(parse(ds))
输出:
datetime.datetime(2016, 11, 22, 11, 49, 21, 826000, tzinfo=tzoffset(None, -18000))
如果您不介意使用名为dateutil
的附加Python包,可以执行以下操作:
from dateutil.parser import parse
ds = '2016-11-22T11:49:21.826-05:00'
print(parse(ds))
输出:
datetime.datetime(2016, 11, 22, 11, 49, 21, 826000, tzinfo=tzoffset(None, -18000))
因为馈送%z
的正确方式类似于-0500
而不是-05:00
>>> datetime.datetime.strptime('2016-11-22T11:49:21.826-0500', "%Y-%m-%dT%H:%M:%S.%f%z")
datetime.datetime(2016, 11, 22, 11, 49, 21, 826000, tzinfo=datetime.timezone(datetime.timedelta(-1, 68400)))
因为馈送%z
的正确方式类似于-0500
而不是-05:00
>>> datetime.datetime.strptime('2016-11-22T11:49:21.826-0500', "%Y-%m-%dT%H:%M:%S.%f%z")
datetime.datetime(2016, 11, 22, 11, 49, 21, 826000, tzinfo=datetime.timezone(datetime.timedelta(-1, 68400)))
Python 3.7中添加了通过strtime()
的%z
格式解析带有冒号的时区偏移量的功能。在3.6中,它需要类似于-0500
的内容。Python 3.7中增加了通过strtime()
的%z
格式解析带有冒号的时区偏移量的功能。在3.6中,它期望类似于-0500
。