将numpy datetime64对象作为ISO 8601字符串写入时,如何控制时区?具体来说,我希望时区为" + 0000",就像下面的输入一样。对于这个非常简单的例子,我只想让它打印回原始字符串。
import numpy
print(numpy.datetime64('2014-03-07T17:52:00.000+0000'))
对我来说,它会返回
2014-03-07T12:52:00.000-0500
我正在使用python 3.4,numpy 1.9.2和windows。
This问题类似,但前两个答案实际上没有回答问题,第三个答案是针对unix的。
答案 0 :(得分:1)
s = '2014-03-07T17:52:00.000+0000'
print(numpy.datetime64(s).item().replace(tzinfo=pytz.UTC).isoformat('T'))
感谢ShadowRanger让我朝着正确的方向前进。 item从datetime64获取天真的datetime,然后用UTC替换时区,因为我知道在这种情况下它是什么,然后用'T'分隔符以ISO格式获取它。
答案 1 :(得分:0)
这应该有效:
import numpy, time, os
os.environ['TZ'] = 'GMT'
time.tzset()
print(numpy.datetime64('2014-03-07T17:52:00.000+0000'))
基于此stackoverflow答案: