Ответ 1
Z
представляет символ часового пояса. Он должен быть процитирован:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
Я был бы признателен за помощь в обнаружении ошибки для этого исключения:
java.text.ParseException: Unparseable date: "2007-09-25T15:40:51.0000000Z"
и следующий код:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
Date date = sdf.parse(timeValue);
long mills = date.getTime();
this.point.time = String.valueOf(mills);
Он выдает expcetion с помощью Date date = sdf.parse(timeValue);
.
timeValue = "2007-09-25T15:40:51.0000000Z";
, как и в случае исключения.
Спасибо.
Z
представляет символ часового пояса. Он должен быть процитирован:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
В Java 7 вы также можете использовать шаблон X
для соответствия часовому поясу ISO8601, который включает специальный Z
(UTC) значение:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSSX");
Date date = sdf.parse("2007-09-25T15:40:51.0000000Z");
Однако, похоже, для шаблона "Z" требуется точное число миллисекундных символов, что не является обязательным. Я думаю, это связано с тем, что определение ISO8601 также включает в себя "двухзначные часы", которые являются просто цифрами, поэтому не может быть выделен парсером за предыдущие миллисекунды.
Таким образом, эта версия будет полезна для временных меток со второй точностью, а тем более для миллисекунд.