Есть ли эквивалент new Date().toString()
(Date
из java.util.Date
) в новом API даты и времени Java 8?
Если я сделаю следующее:
System.out.println(new Date());
это дает мне по умолчанию хороший читаемый результат, например:
Сб, 3 января 12:58:46 CET 2015
(немного зависит от региона)
В Java 8 (новые способы, я знаю, что описанный выше способ все еще работает) я вижу следующие способы получить строку даты «напрямую» (без дополнительного форматирования):
System.out.println(Clock.systemUTC().instant());
приводит к чему-то вроде:
2015-01-03T12:03:58.614Z
Это не совсем читабельно и требует дополнительного форматирования.
Другой путь:
System.out.println(LocalDateTime.now());
приводит к:
2015-01-03T13:00:58.594
Это почти то же самое, что и предыдущее, но без часового пояса Z в конце.
Поскольку желаемая строка даты также должна содержать часовой пояс, я попробовал следующее:
System.out.println(ZonedDateTime.now());
Это печатает:
2015-01-03T13:00:35.277+01:00[Европа/Берлин]
что тоже непригодно.
Я знаю, что могу легко отформатировать дату, передав экземпляр DateTimeFormatter
методу format()
ZonedDateTime
или используя один из существующих, например:
System.out.println(ZonedDateTime.now().format(DateTimeFormatter.RFC_1123_DATE_TIME));
распечатывает:
Сб, 3 янв. 2015 13:01:25 +0100
что было бы приемлемо для меня в качестве результата. Но это требует дополнительного форматирования, чего я хочу избежать.
Итак, есть ли способ получить что-то похожее, если не эквивалентное new Date().toString()
, с новыми классами Date-Time Java 8?
Date.toString()
, почему бы не использовать его? - person Kayaman   schedule 04.01.2015Date
, и я хочу использовать новый API для работы с датами... - person unwichtich   schedule 04.01.2015