首页 > 解决方案 > python3无法将字符串转换为日期时间对象

问题描述

我有以下代码:

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'

为什么我不能转换这个日期?以下示例有效:

date_time_str = '18/09/19 01:55:19'
date_time_obj = datetime.strptime(date_time_str, '%d/%m/%y %H:%M:%S')

标签: python-3.xdatetime

解决方案


首先,这不是有效的 Python 3 代码。您print在代码中使用了 Python 2 语句,并且尝试在 Python 3 上运行它会导致SyntaxError.

如错误所示,您的日期字符串与您指定的格式不匹配。看看格式代码;我注意到的第一个问题是您给出了 4 位数的年份(2020 年),但尝试将其与%y2 位数年份对齐。可能还有其他问题,通过该表应该很容易找到。


推荐阅读