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

What is the maximum timestamp numpy.datetime64 can handle?

我正在尝试将 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

我认为 datetime64 无法处理如此遥远的时间戳。

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

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

这回答了您的问题,但我认为未说出口的另一个问题是它抛出异常的原因:

我遇到了同样的错误(使用 Windows),我尝试了 a=np.datetime64(datetime.max),但效果很好。因此我怀疑问题是 NOT np.datetime64 跨度(因为创建这样的 datetime 有效)但是 __repr__ 需要 OS 在某种程度上可能 OS 限制了你的情况。因此,请检查 OS 的最大本地时间是多少,对于此后的每个日期时间,您仍然可以使用 np.datetime64 对象,但无法在屏幕上打印它们。 :-)