2015-09-22 7 views
-4

у меня есть:Строка Дата дает неправильный результат

String t = "Sep 17, 2015 00:00:00" 
DateFormat format = new SimpleDateFormat("dd.MM.yyyy"); 
Date date = format.parse(t); 

Что я здесь делаю неправильно, потому что каждый раз, когда я пытаюсь разобрать я получаю Exeption.

+3

вы имеете неправильный формат – Jens

+1

Какие отношения делает '17 сентября 2015 00: 00: 00' есть на 'dd.MM.yyyy'? – MadProgrammer

+0

@MadProgrammer dd.MM.yyyy - это то, что я потом хочу иметь. Мне не нужны все нули. – HHHH

ответ

3

Ваша неверная дата. перейти к:

String t = "Sep 17, 2015 00:00:00" 
DateFormat format = new SimpleDateFormat("MMM dd, yyyy HH:mm:ss"); 
Date date = format.parse(t); 

Для получения дополнительной информации см Javadoc из SimpleDateFormat

Как я понимаю ваш комментарий право, вы хотите строку в формате dd.MM.yyy.

Таким образом, вы должны создать SecondDateFromat для форматирования строки

DateFormat format1 = new SimpleDateFormat("dd.MM.yyyy"); 
String result = format1(date); 
+0

@Jens спасибо за ваш ответ. Reasen я использовал неправильный формат, потому что я хотел, чтобы это было моим результатом. Так что, хотя у меня есть другой материал, который я использую позже, мне просто нужно, чтобы я написал свой вопрос. У вас есть идея, как это сделать? – HHHH

+0

@HHHH Я не могу тебя достать. Вы хотите переформатировать дату как строку в dd.MM.yyyy? – Jens

1

дата и формат даты не совпадают. Вы можете изменить дату, чтобы соответствовать вашему формату (или наоборот)

String t = "17.09.2015" 
DateFormat format = new SimpleDateFormat("dd.MM.yyyy"); 
Date date = format.parse(t); 
+2

вы ** ДОЛЖНЫ ** изменить парсер, а не дату !!!! –

+1

Он не говорит ничего подобного в своих требованиях, поэтому в отсутствие четкого направления это может быть либо [Вы можете изменить дату в соответствии с вашим форматом (или наоборот)]. –

+0

ДЕЙСТВИТЕЛЬНО ДЖОН? Я хотел (с моим комментарием), чтобы побудить вас улучшить ответ, чтобы получить какой-то аванс (мой первый), теперь у вас есть мой downvote ... –

1

При использовании «дд.мм.гггга», как формат дата, ваш вход должен быть 17.09.2015 вместо «Сны 17, 2015 00:00:00" Так у вас есть два варианта: либо,

String t = "Sep 17, 2015 00:00:00"; 
     DateFormat format = new SimpleDateFormat("MMM dd, yyyy HH:mm:ss"); 
     try { 
      Date date = format.parse(t); 
     } catch (ParseException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

или

String t = "17.09.2015"; 
     DateFormat format = new SimpleDateFormat("dd.mm.yyyy"); 
     try { 
      Date date = format.parse(t); 
     } catch (ParseException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
+0

и как вы его решаете, если вы не можете изменить дату, потому что она исходит из файла или формы или чего? –

+1

В этом случае формат необходимо изменить: «MMM dd, yyyy HH: mm: ss» – Rehman

+0

@Jordi Castilla Отредактировано моим ответом – Rehman

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