我有一个变量'd',其中包含以这种格式的日期:
2015-08-03T09:00:00-07:00
2015-08-03T10:00:00-07:00
2015-08-03T11:00:00-07:00
2015-08-03T12:00:00-07:00
2015-08-03T13:00:00-07:00
2015-08-03T14:00:00-07:00
等
我需要删除这些日期,但由于时区而遇到麻烦。如果我使用d = dt.datetime.strptime(d[:19],'%Y-%m-%dT%H:%M:%S')
,则只显示前19个字符,其余日期将被忽略。如果我尝试d = dt.datetime.strptime(d[:-6],'%Y-%m-%dT%H:%M:%S
,Python不会切断时区,我仍然会收到错误ValueError: unconverted data remains: -07:00
。我不认为我可以使用dateutil解析器,因为我只看到它用于一个日期而不是像我一样的整个列表。我能做什么?谢谢!
答案 0 :(得分:2)
由于你有一个列表只是迭代并使用dateutil.parser:
from datetime import datetime
for dte in d:
print(datetime.strptime(dte.rsplit("-",1)[0],"%Y-%m-%dT%H:%M:%S"))
如果出于某种原因你真的想忽略时区,你可以使用rsplit和datetime.strptime:
d.split(",")
如果您有逗号分隔的单个字符串,则只需使用strftime
如果你真的想要一个字符串,你可以使用for dte in d:
print(datetime.strptime(dte.rsplit("-",1)[0],"%Y-%m-%dT%H:%M:%S").strftime("%Y-%m-%d %H:%M:%S"))
格式化你想要的任何格式的字符串:
d3.js