2015-12-23 3 views
1

Хорошо, мой бэкенд посылает мне эту дату: 2015-10-23 17: 28: 35,932620000SimpleDateFormat получает неправильный день

В моем андроид приложения, которое я объект, который содержит всю информацию (включая эту дату). Это сеттер:

public void setCreatedDate(String pDateAsString) 
{ 
    /** Intenta convertir la fecha cargada */ 
    try { 
     /** Obtiene la hora que viene de parametro como un Date */ 
     SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", IConstants.LOCALE); 
     mFineCreatedDate = dateFormat.parse(pDateAsString);     
    } catch (java.text.ParseException e) { 
     e.printStackTrace(); 
    }   
} 

Это добытчик:

public String getCreatedDateAsString() 
{ 
    DateFormat dateFormat = new SimpleDateFormat("EEEE FF/MMM/yyyy hh:mm aa",Locale.getDefault()); 
    String dateString = dateFormat.format(mFineCreatedDate); 
    return dateString.substring(0, 1).toUpperCase(Locale.getDefault()) + dateString.substring(1).toLowerCase(Locale.getDefault()); 
} 

Какой форматируется быть показан в более читаемом образом для пользователей. Однако это происходит:

Свидание как 2015-05-04 08:51:32, что отображается понедельник 01/может/2015 8:51 утра

Как вы можете видеть день не так, и я на самом деле не знаю почему. Что касается меня (на основе документации SimpleDateFormat), все в порядке.

+4

изменения 'FF' в' dd' –

+0

Я голосую, чтобы закрыть этот вопрос не по теме, потому что пользователь принял свою вину в своем комментарии – Devrim

ответ

3

Вы должны изменить «FF» (день недели в месяце) на «dd» (день в месяце). Для получения дополнительной информации обратитесь к этому link.

0

Он работает, пытаясь проанализировать вашу дату, как это.

String dtStart = "11/08/2013 08:48:10"; 
SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss"); 
try { 
    date = format.parse(dtStart); 
    System.out.println("Date ->" + date); 
} catch (Exception e) { 
    e.printStackTrace(); 
} 
Смежные вопросы