【发布时间】:2016-02-11 19:43:30
【问题描述】:
在将 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 的。
【问题讨论】:
-
@ShadowRanger 哪个答案真正回答了这个问题?
-
接受的答案正确地指出
numpy不支持任何明确的日期时间格式,最高票数表明转换为 Pythondatetime可以实现相同的效果。 -
@ShadowRanger 投票最高的答案以“2013-03-09 22:30:54”结尾,这不是那个问题或我所要求的。如果不可能,我想知道更多细节,因为这看起来很奇怪。
-
转换为 Python 原生日期时间后,您可以使用
datetime.strftime随意设置格式。numpy似乎没有提供任何格式化操作符; Python 类型只有一个__str__方法,并且它不带参数,因此需要特殊的格式化函数(或使用__format__定义格式小语言)。在内部,datetime64根本不存储时区。它读取它以转换为 UTC,但之后丢弃它以最小化存储需求。
标签: python datetime numpy timezone