我一直在尝试使用 pandas.to_datetime
在我的代码中转换时间戳格式,但是当提供字符串输入时,pandas
有时似乎不能正确提取UTC偏移量:
以下是正确的转换,UTC偏移量已正确捕获,如Timestamp对象所反映:
In[76]: pd.to_datetime('2014-04-09T15:29:59.999993-0500', utc=True)
Out[76]: Timestamp('2014-04-09 20:29:59.999993+0000', tz='UTC')
这里有一种备用的字符串表示方法,仍然是一个有效的ISO 8601日期时间字符串,但UTC偏移量
-0500
似乎被忽略了。In[77]: pd.to_datetime('2014-04-09T152959.999993-0500', utc=True)
Out[77]: Timestamp('2014-04-09 15:29:59.999993+0000', tz='UTC')
另一方面,dateutil 软件包可以很好地处理这些问题:
In[78]: dateutil.parser.parse('2014-04-09T152959.999993-0500')
Out[78]: datetime.datetime(2014, 4, 9, 15, 29, 59, 999993, tzinfo=tzoffset(None, -18000))
我当然可以使用dateutil
,但是为什么pandas.to_datetime
不能正确处理不同的ISO日期时间字符串呢?这里有什么问题吗?
使用Python 2.7.6和pandas 0.13.1