Я полагаю, что то, что вы описываете, будет заменой datetimeмодуля, который реализует datetime.datetimeатрибуты (год, месяц и т. Д.) Как значения с измерением неопределенности (а не просто значения).
Пакеты Python существуют, чтобы помочь с неопределенными числами (например, пакет неопределенностей ), и, возможно, было бы не так уж сложно сделать ответвление datetime, использующее неопределенность для каждого атрибута. Я тоже хотел бы увидеть его и, возможно, даже использовать его. Несомненно, можно привести аргумент в пользу включения udatetimeв пакет вышеупомянутых неопределенностей.
Ваши примеры будут примерно такими:
bob_bday = udatetime(2000, (6,6)) # 2000-06 +/- 6mo
>>> 2000-??-?? T??:??:??
bil_bday = udatetime((1970, 50), 3, 7) # assume bill is ~40 +/- 40
>>> [1970+/-40]-03-07 T??:??:??
«Значения сигнала» имеют много проблем, но кроме того, вы можете представлять вещи с неопределенностью, что значения сигнала не могут:
# ali was born in spring
ali_bday = udatetime((), (4.5, 1.5))
>>> [1970+/-40]-[4.5+/-1.5]-?? T??:??:??
Другое соображение состоит в том, что, если быть более точным, неопределенности здесь должны быть типичными timedelta. Я оставляю читателю в качестве упражнения выяснение краткого и полного конструктора для udatetimeиспользования timedeltaнеопределенностей.
В конечном счете, я бы сказал, что то, что вы описываете, «легко» моделируется неопределенностями, но реализация a udatetimeпрактически довольно сложна. Большинство выберет «легкий» маршрут, разбив дату и время на компоненты и самостоятельно отслеживая неопределенность в них, но если вы чувствуете себя амбициозно, uncertaintiesпакет (или другой) может заинтересовать запрос на извлечение udatetime.