将 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。
这个问题是相似的,但前两个答案实际上并没有回答这个问题,第三个答案是特定于Unix的。
s = '2014-03-07T17:52:00.000+0000'
print(numpy.datetime64(s).item().replace(tzinfo=pytz.UTC).isoformat('T'))
感謝ShadowRanger讓我走上正確的方向。 item 从 datetime64 获取朴素的日期时间,然后用 UTC 替换时区,因为我知道在这种情况下就是这样,然后用"T"分隔符以 ISO 格式获取它。
这应该有效:
import numpy, time, os
os.environ['TZ'] = 'GMT'
time.tzset()
print(numpy.datetime64('2014-03-07T17:52:00.000+0000'))
基于这个堆栈溢出答案:
https://stackoverflow.com/a/32764078/5915424