2014-01-23 5 views
1

как разобрать эту дату?java Непревзойденная дата:

Mon Jul 29 02:00:00 CEST 2013 

код:

public class HelloWorld{ 

    public static void main(String []args){ 

     try { 
       String startdateString = "Mon Jul 29 02:00:00 CEST 2013"; 
     SimpleDateFormat fromUser2 = new SimpleDateFormat("EEE MMM d hh:mm:ss z yyyy"); 

      startdateString = myFormat.format(fromUser2.parse(startdateString)); 
     } catch (ParseException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

я получаю следующее исключение

java.text.ParseException: Unparseable date: "Mon Jul 29 02:00:00 CEST 2013" 

16:13:57,761 ERROR [stderr] (http-/0.0.0.0:8080-1) at java.text.DateFormat.parse(Unknown Source) 
+3

Как вы создаете это переменная 'myFormat'? Я изменил его на 'fromUser2' и работает без проблем. –

+1

Этот вопрос был [уже ответил] [1] [1]: http://stackoverflow.com/a/6154816/34880 –

+0

@Fernando: Ах - согласился, "ПН" не будет действительный день в локали по умолчанию. Голосование как дубликат. –

ответ

2

Вы не обеспечивают Locale и код не будет работать, если вы не запустить его на английскую локаль (как США или Великобритании).

Следующий код (исправленный) работает для меня:

try { 
    String startdateString = "Mon Jul 29 02:00:00 CEST 2013"; 
    SimpleDateFormat fromUser2 = new SimpleDateFormat("EEE MMM dd hh:mm:ss z yyyy", Locale.ENGLISH); 

    System.out.println(fromUser2.parse(startdateString)); 
} catch (ParseException e) { 
    e.printStackTrace(); 
} 
+0

Вместо этого, отправляя два похожих ответа, укажите только один и отредактируйте его. –

+0

Кстати, я тестировал его с помощью 'd' вместо вашего предложения' dd' и отлично работает ... –

+0

@LuiggiMendoza Я не уверен, что это проблема с SO или с моим браузером, но я никогда хотел опубликовать дважды. – LaurentG

2

Вам необходимо отформатировать дату, используя объект SimpleDateFormat в.

Заменить

startdateString = myFormat.format(fromUser2.parse(startdateString)); 

По

startdateString = fromUser2.format(fromUser2.parse(startdateString)); 
1

я не мог найти этот ответ на Google, но хорошо это alread здесь:

Java - Unparseable date

try { 
String startdateString = "Mon Jul 29 02:00:00 CEST 2013"; 
SimpleDateFormat fromUser2 = new SimpleDateFormat("EEE MMM dd hh:mm:ss z yyyy", Locale.ENGLISH); 

    System.out.println(fromUser2.parse(startdateString)); 
} catch (ParseException e) { 
    e.printStackTrace(); 
} 
Смежные вопросы