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
对象,但无法在屏幕上打印它们。 :-)
我正在尝试将 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
对象,但无法在屏幕上打印它们。 :-)