Numpy datetime64 единицы времени - преобразование из строки с цифрами более 4 лет - PullRequest
0 голосов
/ 15 апреля 2020

Я играл с крайними значениями для дат и понял странное поведение:

# 1. normal date in nanoseconds
print(np.datetime64('2020-04-14T00:00:00.000000', 'ns'))
# 2. extreme year date in nanoseconds
print(np.datetime64('-32020-04-14T00:00:00.000000', 'ns'))
# 3. extreme year date as year-month-day
print(np.datetime64('-32020-04-14T00:00:00.000000', 'D'))

дает:

2020-04-14T00:00:00.000000000
1884-06-01T23:24:35.153993728
-32020-04-14

Мне было интересно, почему среднее преобразование дает совершенно неправильную дату / время

1 Ответ

2 голосов
/ 15 апреля 2020

Поскольку np.datetime64[ns] - это 64-битное целое число наносекунд с 1970-01-01 00:00, поэтому они могут представлять только даты в диапазоне [1678 н.э., 2262 н.э.]. Все временные метки вне этого диапазона складываются в него.

Ссылка: numpy руководство по датам

...