2014-01-15 3 views
0

может любая помощь, как получить правильную дату из строки, как это «2014-01-10T09: 41: 16,000 + 0000» мой код:получить право Month даты в формате Java

String strDate = "2014-01-10T09:41:16.000+0000"; 
    String day = ""; 
    String format = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"; 
    Locale locale = new Locale("es", "ES"); 
    SimpleDateFormat formater = new SimpleDateFormat(format, locale); 
    formater.setTimeZone(TimeZone.getTimeZone("Europe/Madrid")); 

    Calendar cal = Calendar.getInstance(); 

    try { 
     cal.setTimeInMillis(formater.parse(strDate).getTime()); 
     String offerDate = cal.get(Calendar.DAY_OF_MONTH) + "-" + cal.get(Calendar.MONTH) + "-" + cal.get(Calendar.YEAR); 
     System.out.println(offerDate); 
    } catch (Exception e){ 
     System.out.println(e.getMessage()); 
    } 

в результате я дать что-то вроде этого: «10-0-2014», я хочу, чтобы результат, как этот «10-01-2014»

заранее спасибо :)

ответ

3

в документации говорится:

java.util.Calendar.MONTH

MONTH public static final int MONTH Номер поля для получения и установки с указанием месяца. Это значение, соответствующее календарю. Первый месяц года в григорианском и юлианском календарях - ЯНВАРЬ , который равен 0; последнее зависит от количества месяцев в году.

-> Подсчет начинается с 0 для Calendar.MONTH

+0

спасибо Mark , является то, что;) – Zouhair

+0

Это правильный ответ. –

1

Я думаю, что проще всего было бы использовать другой объект форматирования, чтобы сделать форматирование, а не строить его самостоятельно:

try { 
    Date d = new Date(cal.setTimeInMillis(formater.parse(strDate).getTime())); 
    SimpleDateFormat format = new SimpleDateFormat("dd-MM-yyyy"); 
    String offerDate = format.format(d); 
    System.out.println(offerDate); 
} catch (Exception e){ 
    System.out.println(e.getMessage()); 
} 
Смежные вопросы