Python 3.x python3无法将字符串转换为datetime对象
我有以下代码:Python 3.x python3无法将字符串转换为datetime对象,python-3.x,datetime,Python 3.x,Datetime,我有以下代码: from datetime import datetime date_time_str = '2020-07-17 21:59:49.55' date_time_obj = datetime.strptime(date_time_str, '%y-%m-%d %H:%M:%S.%f') print "The type of the date is now", type(date_time_obj) print "The date is&qu
from datetime import datetime
date_time_str = '2020-07-17 21:59:49.55'
date_time_obj = datetime.strptime(date_time_str, '%y-%m-%d %H:%M:%S.%f')
print "The type of the date is now", type(date_time_obj)
print "The date is", date_time_obj
这会导致错误:
Traceback (most recent call last):
File "main.py", line 5, in <module>
date_time_obj = datetime.strptime(date_time_str, '%y-%m-%d %H:%M:%S.%f')
File "/usr/lib/python2.7/_strptime.py", line 332, in _strptime
(data_string, format))
ValueError: time data '2020-07-17 21:59:49.553' does not match format '%y-%m-%d %H:%M:%S.%f'
首先,这不是有效的Python3代码。您在代码中使用了Python2
print
语句,试图在Python3上运行该语句会导致出现SyntaxError
如错误所示,日期字符串与指定的格式不匹配。看一看,;我注意到的第一个问题是,您给出了一个4位数的年份(2020年),但尝试将其与两位数年份的
%y
对齐。可能还有其他问题,通过查看该表应该很容易找到。尝试'%Y-%m-%d%H:%m:%S.%f'
,在第一个示例中,您有完整的年份。如果您有可用的Python 3.7+,您可以使用datetime.fromsoformat('2020-07-17 21:59:49.55')更简单地解析
因为您的输入与ISO8601兼容。这种方法也是可行的。
date_time_str = '18/09/19 01:55:19'
date_time_obj = datetime.strptime(date_time_str, '%d/%m/%y %H:%M:%S')