Как использовать синтаксический анализатор даты / времени Chronic на естественном языке, чтобы проанализировать «12:00» как 12:00? - PullRequest
0 голосов
/ 17 сентября 2009

Я использую рубиновый гем "Chronic" для анализа четырехзначных строк как объектов DateTime. Я использую время в военном формате (то есть: «0800»), который, как представляется из документа, является допустимым форматом.

В большинстве случаев Chronic правильно анализирует время в этом формате - однако он всегда анализирует четырехзначную строку, начинающуюся с «12», как 00: XX AM следующего дня, а не как 12: XX PM. текущего дня.

Например:

>> Chronic.parse("1234")
=> Thu Sep 17 00:34:00 -0600 2009

Я вижу, что если я поставлю двоеточие между часами и минутами, я получу желаемый результат:

>> Chronic.parse("12:34")
=> Wed Sep 16 12:34:00 -0600 2009

Однако я хочу передать значение без двоеточия, например:

>> Chronic.parse("1234")
=> Wed Sep 16 12:34:00 -0600 2009

Какую строку я должен передать парсеру, чтобы Chronic интерпретировал «1234» как 12:34 текущего дня?

1 Ответ

0 голосов
/ 17 сентября 2009

Я не уверен, но похоже, что это ошибка. Я думаю, вы оказались в этом углу кода:

http://github.com/mojombo/chronic/commit/c7d9591acf5179345cbc916bd509c48acee8e744

...