Преобразование 12-часового формата в военное время

В настоящее время я пытаюсь написать метод, который принимает строку типа "1 вечера" и преобразует ее в военное время -> 13

Прямо сейчас у меня есть следующее, и это не работает правильно. Любые советы будут с благодарностью.

/ ** * Установите время встречи, используя более удобную для человека строку. * @param newHour Новый час для этой встречи с использованием обозначения * am/pm, такого как "9:00" или "17:00". */

public void setTime(String newHour)
{
    String day = newHour.substring(newHour.length() - 2);
    String dig = newHour.substring(2, newHour.length() - 2);

    if (dig.equals("12"))
    {
        dig = "0";
    }
    if (day.equals("am"))
    {
        hour = Integer.parseInt(dig);
    }
    else 
    {
        hour = Integer.parseInt(dig) + 12;
    }
}

1 ответ

Ваша строка "копать" неверна. Его начальный индекс должен быть 0.

String dig = newHour.substring(0, newHour.length() - 2);
Другие вопросы по тегам