Не используйте LocalDate
для String
, который
- содержит информацию о времени суток, для которого потребовалось бы
LocalDateTime
и - . смещение, которое не может рассматриваться как
LocalDateTime
.
Вместо этого используйте OffsetDateTime
:
public static void main(String[] args) {
String string = "2017-08-01T16:00:00-04:00";
OffsetDateTime odt = OffsetDateTime.parse(string);
System.out.println(odt.format(DateTimeFormatter.ISO_OFFSET_DATE_TIME));
}
Выход:
2017-08-01T16:00:00-04:00
Кроме того, ваш шаблон в DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss-mm:ss");
имеет серьезный fl aws, как дубликаты.
Вы, конечно, можете распечатать результат, используя шаблон, отличный от входного (который соответствует стандарту ISO 8601):
public static void main(String[] args) {
String string = "2017-08-01T16:00:00-04:00";
OffsetDateTime odt = OffsetDateTime.parse(string);
System.out.println(odt.format(DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss Z")));
}
Вывести на этот раз:
01.08.2017 16:00:00 -0400