разрешение недопустимых дат в python datetime

Модуль datetime выполняет проверку даты и математику, что нормально, когда вы заботитесь о реальности.

Мне нужен объект, который хранит сгенерированные даты, даже если они недействительны. Дата и время слишком строгое, поскольку иногда я знаю только год или только год и месяц, а иногда у меня есть дата, например, 30.02.2011.

Есть ли модуль, который похож на datetime, но может обрабатывать недопустимые даты?

Если нет, то как лучше всего справиться с этим, дублируя как можно меньше функций и по-прежнему позволяя вычислять даты, когда это возможно?

ОБНОВЛЕНИЕ

Мотивацией для этого является интеграция с несколькими системами, которые используют даты и не заботятся о недопустимых датах (mysql и perl) в дополнение к желанию иметь возможность указывать основные общие диапазоны времени. Для нечеткой даты математика начинается с начала известной единицы времени (если я знаю год и месяц, но не день, используйте первое, если я знаю год, но не месяц или день, сначала используйте январь).Этот последний бит не нужен, но был бы хорош, и я понимаю, почему он не распространен, поскольку люди, которым нужна специальная математика даты, вероятно, построят его сами.

Одна из основных проблем, с которыми я сталкиваюсь, - это загрузка дат из mysql в python с использованием sqlalchemy и mysqldb - если вы загрузите значение из столбца даты im mysql, которое выглядит как '2011-01-00' в mysql, вы получите None в python. Это совсем не круто.

6
задан underrun 14 July 2011 в 21:03
поделиться