2015-11-03 2 views
3

У меня есть странная проблема, когда я пытаюсь разобрать эту дату: Tue Nov 03 10:50:16 CET 2015 с помощью java SimpleDateFormat, она выдает исключение из-за «Tue» там.
Мой код:Дата Java не обрабатывает день

String date = "Tue Nov 03 10:50:16 CET 2015"; 
Date parsedDate = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy").parse(date); 

Что вызывает это исключение: java.text.ParseException: Unparseable date: "Tue Nov 03 10:50:16 CET 2015"

Я пытался отладки, и это то, что сводится к тому:

String date = "Tue"; 
Date parsedDate = new SimpleDateFormat("EEE").parse(date); 

Который проливает тот же тип исключения. (Я также попробовал это с одним «E»). Я думаю, что это действительно странно, потому что документация говорит мне, что так оно и должно использоваться. Источник: https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html

Решения более чем приветствуются!
Спасибо, Лука

Update: точка разбора является для разбора MANIFEST.getMainAttributes().getValue("Created-On");

+10

Какой у вас язык? От этого зависит текстовое представление дня и месяца. – cheffe

+2

Попробуйте перейти в локацию «en-us» к конструктору, чтобы заблокировать эту часть. – Thilo

+2

Вы можете попробовать следующее предложение @cheffe: 'SimpleDateFormat (« EEE », Locale.ENGLISH)'. Кстати, я протестировал ваш код с помощью String, и он отлично работает. Язык в моей системе English –

ответ

1

Благодаря Cheffe я понял, решение:

Date parsedDate = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH).parse(date); 

который работал! :)

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