Я использую рубиновый гем "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 текущего дня?