datetime.date
поддерживает до конца года 9999. Это кажется достаточным ... но 10 ^ 9 дней - это больше 2,5 миллионов лет.
Еще одна библиотека Python, связанная свремя называется просто time
, которое работает в основном с функциями времени C.
Я обнаружил, что time.ctime()
получает время в секундах от эпохи (аргумент по умолчанию соответствует текущему времени в этом формате - time.time()
)и выводит форматированную строку времени по умолчанию.
Вы можете проанализировать данное время, используя time.strptime()
, чтобы получить структуру времени, а затем преобразовать ее в секунды эпох с помощью time.mktime()
.Затем добавьте ваши N дней в секундах.И вуаля!У вас есть время из эпохи для нужного вам времени.
Таким образом, lib работает только с анализом и преобразованием, но математика выполняется для целых чисел.
Проверка текущего времени (без анализаit), N = 10 ^ 9:
>>> test = time.time()
>>> print(test)
1561378571.5154927
>>> time.ctime(test)
'Mon Jun 24 14:16:11 2019'
>>> test_after_N = test + 10**9 * 24 * 3600
>>> print(test_after_N)
86401561378571.52
>>> time.ctime(test_after_N)
'Sun Jun 27 13:16:11 2739926'
Если вам нужен другой формат, вы можете проанализировать или обрезать вывод или выяснить, можно ли изменить формат по умолчанию.
Документацию к модулю можно найти здесь - https://docs.python.org/3/library/time.html