Я пытаюсь создать формат ISO 8601 («yyyy-MM-dd'T'HH: mm: ss.SSSXXX»). Ia m using Java 8 DateFormatBuilder для анализа строки в формате ISO 8601.Java 8 API DateFormatBuilder для построения ISO 8601 Формат даты
Когда я сталкиваюсь с временем UTC, выход форматирования «2016-11-01T16: 51: 35.000Z», но мне действительно нужно, чтобы 00:00 вместо Z. Я попытался использовать DateFormatBuilder для создания этого, но без успеха.
я, наконец, в конечном итоге делает следующие
DateTimeFormatterBuilder builder = new DateTimeFormatterBuilder();
DATETIMEFOMATTER = builder.parseCaseInsensitive()
.append(DateTimeFormatter.ISO_OFFSET_DATE_TIME)
.toFormatter();
ZonedDateTime zonedDate = ZonedDateTime.parse(date, DATETIMEFOMATTER);
String utcDate = zonedDate.format(FORMATTER);
if (utcDate.indexOf("Z") != -1){
utcDate = utcDate.replace("Z", "-00:00");
}
Я не хочу, чтобы разобрать строку и заменить Z с «00:00». API Joda легче работать. Любая идея, если мы можем построить с использованием Java 8 DateTimeFormatterBuilder? Я действительно ссылался на несколько вопросов stackoverflow, но не работал. Возможно, я что-то делаю неправильно. Может кто-нибудь помочь?
[ 'appendPattern'] (https://docs.oracle.com/javase/8/docs/api /java/time/format/DateTimeFormatterBuilder.html#appendPattern-java.lang.String-)? Вы написали формат в вопросе, я не уверен, в чем проблема. – Tunaki
Thats не работает для меня. – Milind
Определите «не работает», пожалуйста. Опубликовать попытку, а также исключения/или что-то еще, что произошло? – Tunaki