我正在使用返回包含以下日期/时间的JSON字符串的API:
2013-03-14T14:15:23-07:00
我得到日期和时间,直到第二个。但最后5个字符令我困惑。我猜这是UTC偏移量。 (山区时间)我无法弄清楚怎么做是将上面的字符串与python中的日期/时间进行比较。 T也让我失望了。
如何编码python日期/时间字符串以匹配上述内容?
答案 0 :(得分:2)
如果您使用python-dateutil
库(https://crate.io/packages/python-dateutil/),则可以将该值转换为datetime
。
>>> dateutil.parser.parse('2013-03-14T14:15:23-07:00')
datetime.datetime(2013, 3, 14, 14, 15, 23, tzinfo=tzoffset(None, -25200))
答案 1 :(得分:2)
您正在查看ISO 8601日期格式。您可以使用package to parse it或自己动手。
您可以使用datetime.strptime来解析:
>>> ts='2013-03-14T14:15:23-07:00'
>>> datetime.datetime.strptime(ts[0:-6],'%Y-%m-%dT%H:%M:%S')
datetime.datetime(2013, 3, 14, 14, 15, 23)
然后只需添加/减去时间增量(对于'天真'对象):
>>> datetime.timedelta(hours=int(ts[-6:-3]))
datetime.timedelta(-1, 61200)
这样:
>>> d=datetime.datetime.strptime(ts[0:-6],'%Y-%m-%dT%H:%M:%S')+datetime.timedelta(hours=int(ts[-6:-3]))
>>> d
datetime.datetime(2013, 3, 14, 7, 15, 23)
棘手的部分是TZ是可选的,是否添加/减去时间偏移或在日期对象中设置时区。