python - datetime.strptime 无法转换
问题描述
我正在尝试将日期列表(每个条目都是一个字符串)转换为日期时间对象。
日期格式如下:2018-09-10 24:11
我一直在使用的代码是:
dateTime = []
def makeDateTime(date):
for entry in date[1:]:
dateTime.append(datetime.strptime(entry, "%Y-%m-%d %H%M"))
return dateTime
dt = makeDateTime(date)
我得到的错误是:
ValueError Traceback (most recent call last)
<ipython-input-91-5ac073b0f75a> in <module>()
----> 1 dt = datetime.strptime(date[1], "%Y-%m-%d %H%M")
~/anaconda3/lib/python3.6/_strptime.py in _strptime_datetime(cls, data_string, format)
563 """Return a class cls instance based on the input string and the
564 format string."""
--> 565 tt, fraction = _strptime(data_string, format)
566 tzname, gmtoff = tt[-2:]
567 args = tt[:6] + (fraction,)
~/anaconda3/lib/python3.6/_strptime.py in _strptime(data_string, format)
363 if len(data_string) != found.end():
364 raise ValueError("unconverted data remains: %s" %
--> 365 data_string[found.end():])
366
367 iso_year = year = None
ValueError: unconverted data remains: :14
即使我尝试在循环之外转换一个条目,它似乎也不起作用。任何想法如何解决这一问题?
解决方案
如果您的日期看起来像'2018-09-10 00:11'
,则正确的格式字符串"%Y-%m-%d %H:%M"
介于:
小时和分钟之间。
>>> from datetime import datetime
>>> datetime.strptime('2018-09-10 00:11', '%Y-%m-%d %H:%M')
datetime.datetime(2018, 9, 10, 0, 11)
但是,您仍然无法'2018-09-10 24:11'
使用此格式字符串进行解析。时间 24:11 不存在,应该是 00:11。我假设这只是你现在的一个错字。
如果交换分钟和小时,您可以使用'%Y-%m-%d %M:%H'
(但我在这一点上猜测。)
推荐阅读
- reporting-services - SSRS 水平对齐直线
- android - 在迁移到 viewpager2 androidx 时发现此错误“无法解析方法 'super(androidx.fragment.app.FragmentManager)'”
- python - PuLP : 如何在 Dict 中制定目标函数和乘法值
- python - 在递归的基本情况下返回 None 的目的是简单地用作填充物,然后自然而然地执行调用堆栈中的顶部递归调用吗?
- oracle - listener.ora、tnsnames.ora 和 sqlnet.ora 不在 $ORACLE_HOME/network/admin 中
- sql - While 循环函数
- python - 接受 1 个位置参数,但给定了 2 个 discord.py
- python - 如何创建一个基于继承类自动添加新聚合方法的集合类?
- php - Uncaught Error: Class 'NumberFormatter' not found
- python - 带或不带参数的类装饰器