2015-07-17 3 views
1

Я хочу, чтобы преобразовать следующие даты и времени сделать миллисекунды:дата Преобразовать в миллисекундах дает мне неправильную дату Java

17/07/2015 13:30

Для этого я использовал следующий код :

SimpleDateFormat f = new SimpleDateFormat("dd/mm/yyyy hh:mm"); 
Date d = null; 
try { 
    d = f.parse(date); 
} catch (ParseException e) { 
} 
long milliseconds = d.getTime(); 

Но когда эта дата добавить в календарь в Android, кажется, что дата 17 января не 17 июля.

+2

«мм» означает минуты - так 'дд/мм/гггг чч: мм' должно быть почти наверняка 'dd/MM/yyyy HH: mm'. Обратите внимание на изменение с 'hh' на' HH'. См. Http://codeblog.jonskeet.uk/2015/05/05/common-mistakes-in-datetime-formatting-and-parsing/ –

ответ

3

Это должно быть так: -

SimpleDateFormat f = new SimpleDateFormat("dd/MM/yyyy HH:mm"); с MM в течение нескольких месяцев не mm за несколько минут & HH в течение 24-часов вместо hh для AM/PM Часы

+2

Я подозреваю, что OP также хочет HH вместо hh. –

+0

спасибо Sir @JonSkeet :) –

1

изменить mm для вашего месяца до MM ,

0

Я обнаружил, что у вас есть опечатка в формате дата dd/mm/yyyy hh:mm он должен быть dd/MM/yyyy HH:mm теперь, пожалуйста, есть взгляд в мой код и dateformate для андроид

SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy HH:mm", Locale.ENGLISH); 
String input = "17/07/2015 13:30"; 
Date datestr = formatter.parse(input); 

**long date = datestr.getTime();** // what you want 

// revers of your Date 

Calendar calendar = Calendar.getInstance(); 
calendar.setTimeInMillis(datestr.getTime()); 
String output = formatter.format(calendar.getTime()) 
Смежные вопросы