Если вы используете Java 8, вы не должны использовать java.util.Date
в первую очередь (если вы не получите Date
объект из библиотеки, вы не имеете никакого контроля над).
В любом случае, вы можете преобразовать Date
к java.time.Instant
с помощью:
Date date = ...;
Instant instant = date.toInstant();
Поскольку вы заинтересованы только в дате и времени, без информации часового пояса (я предполагаю, что все UTC), вы можете преобразовать что мгновенная к LocalDateTime
объекта:
LocalDateTime ldt = instant.atOffset(ZoneOffset.UTC).toLocalDateTime();
Наконец, вы можете распечатать его с:
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss");
System.out.println(ldt.format(fmt));
Или используйте предопределенный форматтер, DateTimeFormatter.ISO_LOCAL_DATE_TIME
.
System.out.println(ldt.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME));
Обратите внимание, что если вы не предоставите форматчик, вызывая ldt.toString
дает выход в стандартном формате ISO 8601 (включая миллисекунды) - что может быть приемлемо для вас.
Пожалуйста, покажите ваш полный код –
Возможный дубликат: http://stackoverflow.com/questions/5683728/convert-java-util-date-to-string – Peter
@PeterKuebler Я пытаюсь использовать DateTimeFormatter –