2013-07-19 3 views
0

Я попытался разобрать эту строку 20130718T090000Z с помощью SimpleDateFormat. Мне нравится эта фотография:parse date with SimpleDateFormat

 String timeString= "20130718T090000Z"; 
     DateFormat dateFormat = new SimpleDateFormat("yyyyMMdd'T'HHmmssZ"); 
     Date date= dateFormat.parse(timeString); 

Я получил безошибочную ошибку. Реферирование здесь http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html#rfc822timezone Я обнаружил, что ничего не сделал, или сделал? Tks.

+0

Tks все для быстрых и правильных ответов. Я выбрал @ sanbhat, потому что он дает больше информации в своем комментарии. –

ответ

5

Используйте эту строку формата "yyyyMMdd'T'HHmmss'Z'". Причина, по которой он не разобрался, был в конце, но в конце не было логического символа Z. "20130718T090000Z"

+0

Это не поможет ни при каких обстоятельствах, как если бы время с другим часовым поясом появлялось, он потерпит неудачу. Буква 'Z' используется для обозначения часового пояса. –

+0

@UwePlonus, к сожалению, java не распознает формат даты ISO, поэтому это способ игнорировать те charaters.http: //stackoverflow.com/questions/2201925/converting-iso8601-compliant-string-to-java-util-date – sanbhat

+0

Я знаю это, поэтому вам придется обрабатывать это вручную в Java 6. Java 7 имеет лучшую поддержку для этого. –

0

У вас возникли проблемы с тем, что Z в свое время String не признан действительным часовым поясом.

С помощью Java 6 вам необходимо самостоятельно обработать часовой пояс Z или удалить его или заменить на +0000.

2

Z предназначено для часового пояса. Вы не указали часовой пояс в строке даты.

Вы должны были сделать некоторые вещи, как String timeString= "20130718T090000-0700";

В случае, если вы хотите, чтобы лечить Z постоянным, то вам необходимо изменить формат yyyyMMdd'T'HHmmss'Z'

0

вы должны дать значение Z во входной строке , as Строка timeString = "20130718T090000 + 0000";

Это будет разобрать дату в соответствии с форматом ..

Надеется, что это помогает

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