2016-04-21 2 views
0

я застрял, пытаясь разобрать следующий формат даты ниже:Android дата синтаксического анализа Simple Date Format

2016-04-27T00: 00: 00 + 10: 00

Я перепробовал много комбинаций и может Кажется, он работает.

Я бы подумал, что это будет работать, как это сделать больше смысла для меня - YYYY-MM-dd'T'HH: ММЗ

Любые идеи? Спасибо

+0

http://stackoverflow.com/questions/3914404/how-to-get-current-moment-in-iso-8601-format – sasikumar

ответ

2

Вы не можете проанализировать его, поскольку вы используете неправильный формат. Он должен быть yyyy-MM-dd'T'HH:mm:ssZ вместо yyyy-MM-dd'T'HH:mmZ.

Вот фрагмент кода:

SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ"); 
String input = "2016-04-27T00:00:00+10:00"; 
Date date = sf.parse(input); 

Выход:

Tue Apr 26 14:00:00 GMT 2016 
+1

@MikeM. Спасибо что подметил это. Отредактировал мой ответ. – user2004685

+0

Это правильный ответ, спасибо. Я добавлял одиночные цитаты вокруг Z, что было неправильно. – Petersicecream

+0

@Petersicecream Если вы делаете что-то вроде '' Z'', тогда он ищет буквенный 'Z', и поскольку вы не получаете буквальный, но TimeZone он терпит неудачу. – user2004685

1

В случае, если вы используете Jackson для JSON синтаксического анализа, вы можете просто аннотировать поле даты с @JsonFormat аннотаций. Вот пример:

@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd'T'HH:mm:ss'Z'", timezone="GMT") 
public Date date; 
Смежные вопросы