Разбор и проверка произвольных форматов даты в ruby ​​(на рельсах) - PullRequest
1 голос
/ 01 июня 2010

У меня есть требование для обработки пользовательских форматов даты в существующем приложении. Идея заключается в том, что пользователи имеют дело с несколькими форматами из внешних источников, над которыми они имеют очень мало контроля. Нам нужно будет иметь возможность взять формат и как проверить Даты против него, а также проанализировать строки конкретно в этом формате. Другое дело, что они могут быть совершенно произвольными, например, JA == Январь, FE == Февраль и т. Д. *

Насколько я понимаю, хронический обрабатывает только синтаксический анализ (и делает это более волшебным способом, чем я могу использовать), и введите код здесь DateTime # strptime подходит близко, но на самом деле не обрабатывает весь двухсимвольный сценарий месяца, даже с пользовательскими форматерами. «Ядерный» вариант - написать в специальной поддержке для таких крайних случаев, как это, но я бы предпочел использовать библиотеку, если что-то подобное существует.

1 Ответ

1 голос
/ 02 июня 2010

Я не думаю, что что-то, что решает все эти проблемы, существует, если формат действительно очень произвольный. Вероятно, было бы проще «преобразовать» ваш ввод в форму, которую можно обработать с помощью Date.parse, Date.strptime или другого существующего инструмента, даже если это может потребовать значительных усилий.

О каких разных форматах мы говорим? Кто-нибудь из них конфликтует? Похоже, вы могли бы просто gsub так: input_string.gsub(/\bJA\b/i, 'January'). Это часть процедуры импорта или пользователи будут вводить даты в разных форматах?

Здесь есть связанный вопрос: Разбор итальянской даты с Ruby

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...