@asmodeoux

Проблемы с форматом времени в SimpleDateFormat. Где накосячил?

В приложение забито расписание, и имеется метод, который выдаёт пункт расписания в зависимости от времени. Для удобства сделал вот что:
Date date = new Date();
    SimpleDateFormat hour = new SimpleDateFormat("HH");
    String stringHour = hour.format(date);
    int intHour = Integer.parseInt(stringHour);
    SimpleDateFormat minute = new SimpleDateFormat("mm");
    String stringMinute = minute.format(date);
    int intMinute = Integer.parseInt(stringMinute);
    public int hourandminute = (intHour * 100) + intMinute;

Соответственно получаю на выходе переменную, превращающую 07:45 в 745 и так далее.
Имеется и if, который в зависимости от значения hourandminute выдаёт конкретный пункт. Вот только когда время перешагивает отметку в 13 часов - выдаёт тот пункт, который должен был выдавать 12 часов назад.

Соответсвенно понимаю, что hour выдаёт в 12-часовом формате. Много гуглил, пробовал менять HH на k, KK и прочие - проблема та же. В чём косячу?

З.Ы. Прошу сильно не ругать, начал учиться пару недель назад и захотел немного попрактиковаться. :)
  • Вопрос задан
  • 380 просмотров
Пригласить эксперта
Ответы на вопрос 1
@odissey_nemo
Программист, ГИС-системы, растры, космоснимки
Тогда уж следовало сразу писать:
Date date = new Date();
    SimpleDateFormat hoursmins = new SimpleDateFormat("HHmm");
    String stringHoursMins = hoursmins .format(date);
    int hourandminute = Integer.parseInt(hoursmins );


Не понятно, почему SimpleDateFormat выдаёт в 12 часовом формате. Всегда и везде выдавал в формате 0-23.
Также непонятно, почему требуется умножать часы на 100. Получается какая-то инопланетная система времяисчисления. Так, вместо наших 12 часов 30 минут = 750 минут, получится 1230 = 20 часов 30 минут. Но это уже могут быть особенности реализации или исторические особенности счёта в разных отраслях экономики (жд. моряки...)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы