剥离日期-07:00时区格式python

时间:2015-08-03 16:53:26

标签: python datetime

我有一个变量'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解析器,因为我只看到它用于一个日期而不是像我一样的整个列表。我能做什么?谢谢!

1 个答案:

答案 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