2016-02-15 70 views
0

我想转换datetimenumpy.datetime64但以下情况下失败: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

如果你得到一个“OSError”,一个重要的事情就是包含你在问题中使用的“OS”。 – MSeifert

回答

1

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

这回答了你的问题,但我认为潜另一个问题是,为什么它抛出一个异常:

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

相关问题