我试图将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
可以处理的最大时间戳是多少?
答案 0 :(得分:1)
取决于np.datetime64
对象的指定单位是什么(根据numpy docs)。由于您给出了一个微秒的时间戳,因此允许的范围为[290301 BC, 294241 AD]
。
这回答了你的问题,但我认为另一个未说出口的问题就是为什么会抛出异常:
我面临同样的错误(使用Windows),我尝试了a=np.datetime64(datetime.max)
。因此,我怀疑问题是 NOT np.datetime64
范围(因为创建这样的datetime
有效),但__repr__
需要操作系统以某种方式,可能是操作系统在您的情况下限制它。因此,请检查操作系统的最大本地时间以及之后的每个日期时间,您仍然可以使用np.datetime64
对象,但无法在屏幕上打印它们。 : - )