hashspark
@hashspark

Как работать с такой датой?

Здравствуйте, иногда встречаются даты формата (как на Хабре):


сегодня в hh:mm

вчера в hh:mm

dd сентября в hh:mm — текущий год, месяц написан в родительном падеже

dd сентября 2012 в hh:mm


Как получить дату в привычном формате из такой строки? Может кто сталкивался? Есть ли красивые решения?
  • Вопрос задан
  • 4085 просмотров
Решения вопроса 1
syschel
@syschel
freelance/python/django/backend
Посмотрите схожий вопрос. Там хоть и под пхп вопрос. Но были варианты и с питоном.
Подскажите библиотеку для парсинга человеко-понятной даты?
Правда там под более «извращённые» варианты написания дат.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
OnYourLips
@OnYourLips
Не нужно записывать дату строкой, чтобы потом не пришлось ее парсить. Нужно хранить дату в формате даты и лишь при выводе ее преобразовывать в строку.
Ответ написан
briskly
@briskly
Решал данную задачу.
Тогда я написал с около 10-ти регулярок. Просто регулярки надо делать универсальные, например:
r = re.compile(?P<day>__day__)__spl__{1,5}(?P<month>__monthnum__)__spl__{1,5}(?P<year>__year__)?)

__day__ итп. универсальные регулярки определенные заранее в словарике
Задача нет так сложна, как кажется с начала.
Для относительных дата своя регулярка, которая собирается из словарика.
И пост обработка для каждой группы. Типа формат месяца может быть разный, если слова то ищем в словаре.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
20 июн. 2021, в 12:48
5000 руб./за проект
20 июн. 2021, в 12:33
2000 руб./за проект
20 июн. 2021, в 12:22
3000 руб./за проект