numpy.datetime64可以处理的最大时间戳是多少?

时间:2016-02-15 17:16:04

标签: python datetime numpy datetime64

我试图将datetime转换为numpy.datetime64,但以下情况失败:

>>> import numpy as np
>>> from datetime import datetime
>>> np.datetime64(datetime.max)
OSError: Failed to use 'localtime_s' to convert to a local time

我认为datetime46无法处理这些过时的时间戳。

那么datetime46可以处理的最大时间戳是多少?

1 个答案:

答案 0 :(得分:1)

取决于np.datetime64对象的指定单位是什么(根据numpy docs)。由于您给出了一个微秒的时间戳,因此允许的范围为[290301 BC, 294241 AD]

这回答了你的问题,但我认为另一个未说出口的问题就是为什么会抛出异常:

我面临同样的错误(使用Windows),我尝试了a=np.datetime64(datetime.max)。因此,我怀疑问题是 NOT np.datetime64范围(因为创建这样的datetime有效),但__repr__需要操作系统以某种方式,可能是操作系统在您的情况下限制它。因此,请检查操作系统的最大本地时间以及之后的每个日期时间,您仍然可以使用np.datetime64对象,但无法在屏幕上打印它们。 : - )