Преобразовать формат даты в другую дату в Android? - PullRequest
2 голосов
/ 07 августа 2011

Я получаю дату в формате 2011-10-01T21: 00: 00.0000000-07: 00 с сервера. Я попытался преобразовать это, используя "yyyy-MM-dd'T'HH: mm: ss.SSSZ" этот формат класса SimpleDateFormat. Но это всегда дает мне исключение Parser.

Может кто-нибудь сказать мне, что может быть не так при конвертации?

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssSSSSSZ");
Date eventDate = dateFormat.parse(date);

Приведенный выше код выдает ошибку.

Ответы [ 2 ]

2 голосов
/ 07 августа 2011

Capital S ожидает примерно от 1 до 3 символов, и там у вас есть семь символов.Это, наверное, проблема.Если миллисекунды не важны, попробуйте удалить их.Если вы хотите попробовать что-то случайное, попробуйте добавить туда семь S. и посмотрите, поможет ли это.

PS в приведенном выше фрагменте кода вам не хватает точки между ss и SSSS

1 голос
/ 07 августа 2011

Ваш формат неверный: в строке 2011-10-01T21:00:00.0000000-07:00 у вас слишком много миллисекундных байтов. Строка формата SSS требует ровно 3 нуля (для подсчета в миллисекундах не может быть более 3 значащих цифр).

Проверьте формат сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...