2016-02-15 68 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對象,但無法在屏幕上打印它們。 :-)

相關問題