我有:
import datetime as DT
for i in range(len(data)):
dates[i]=str(DT.datetime.strptime("%s-%s-%s" %(data[i][0][2],data[i][0][0],data[i][0][1]),"%Y-%m-%d"))
其中(data[i][0][2],data[i][0][0],data[i][0][1])
分别给出年,月和日。
问题在于我得到ValueError: invalid literal for float(): 1885-05-02 00:00:00
,因为它似乎将%d解释为小数而不是一天。
我怎样才能解决这个问题?
答案 0 :(得分:0)
import datetime as DT
for day in data:
date=DT.datetime.strptime(day, "%Y-%m-%d %H:%M:%S")
答案 1 :(得分:0)
您很早就开始了解%d
的结论。首先 - 我在这段代码中看不到浮动转换。第二 - 错误中的字符串包括时间,但你说它应该只是年,月,日。请检查您真正提供的内容。此外,如果您已经拥有了值,则可以自己构造字符串 - 无需首先构造字符串,然后再次解析它并从中获取字符串...
这应该是这样的:
for i, parts in enumerate(data):
dates[i] = "%s-%02i-%02i 00:00:00" % (parts[0][2], int(parts[0][0]), int(parts[0][1]))
(如果他们已经注册了,你可以放弃int cast)