2011-01-11 4 views
5

Возможно, это будет глупый вопрос, но я не понимаю функцию даты java. Вот код:Простой вопрос о java SimpleDateFormat

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())); 

Если переменная = "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, но я не могу найти никакого объяснения этому нигде. Это заворачивает мой калькулятор времени.

+0

Ваш вопрос не ясен для меня. Где вы устанавливаете var? Поскольку вы используете hh: mm, который не является военным временем, - возможно, именно поэтому вы получаете 00 на 12. – CoolBeans

ответ

12

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

SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); 
0

я должен использовать «H» вместо «ч». «h» - формат AM/PM.

Смежные вопросы