在 ISO 8601 中用时区写下 numpy datetime64



将 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

相关内容

  • 没有找到相关文章