Простой вопрос о Java SimpleDateFormat - PullRequest
5 голосов
/ 11 января 2011

Это, вероятно, глупый вопрос, но я не понимаю функцию даты Java. Вот некоторый код:

SimpleDateFormat sdf = new SimpleDateFormat("hh:mm");
Date s = sdf.parse(var);
Calendar scal = java.util.GregorianCalendar.getInstance();
scal.setTime(s);   
Log.w("Time: ", Long.toString(s.getTime()));

Если var = "10:00", я получаю "64800000".

Если var = "11:00", я получаю "68400000".

Если var = "12:00", я получаю "28800000".

Если var = "13:00", я получаю "75600000".

Если var = "14:00", я получаю "79200000".

Если var = "00:00", я получаю "28800000".

Что случилось с 12:00? Почему, когда var = 12: 00, я получаю тот же результат, что и в 00:00? Все остальные результаты кажутся правильными. Я, очевидно, не понимаю функцию даты Java, но я не могу найти никакого объяснения этому где-либо. Это портит мой калькулятор промежутка времени.

Ответы [ 2 ]

12 голосов
/ 11 января 2011

Если вы хотите использовать 24-часовое время, вам нужно использовать заглавный формат ЧЧ:

SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); 
0 голосов
/ 11 января 2011

Я должен был использовать «H» вместо «h».«h» для формата am / pm.

...