Преобразование 12-часовой строки времени с AM / PM в 24-часовое время - PullRequest
1 голос
/ 06 января 2020

У меня есть куча строк на основе времени, сохраненных для каждого объекта в моей БД, которые отформатированы следующим образом:

"01:00 PM"

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

Time.strptime("1:00 PM", "%I%P").strftime("%H:%M")
# ArgumentError (invalid strptime format - `%I%P')

Есть ли еще способ заставить это преобразование работать, учитывая мой конкретный формат?

Ответы [ 2 ]

1 голос
/ 06 января 2020

Вы пробовали это? time = "12:00 PM"

Time.strptime(time, "%I:%M %P").strftime("%H:%M")

0 голосов
/ 06 января 2020

Вы должны передать формат времени в методе strptime, поэтому вы должны передать '%I:%M %P', и если вы не хотите использовать точку с запятой во времени, вы должны передать значения в соответствии с ним в методе strftime как '%H%M', поэтому вы получите ответ в соответствии с вашими требованиями.

Time.strptime('10:00 PM', '%I:%M %P').strftime("%H%M") это даст вам вывод "2200" и

Time.strptime('10:00 PM', '%I:%M %P').strftime("%H:%M") это даст вам вывод "22:00".

Спасибо.

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