Я думаю, вы задали этот вопрос немного неправильно. Скорее, я считаю, что вы хотите. Как преобразовать какой-либо конкретный класс java.time, например. Instant, LocalDate, в Date с использованием общего интерфейса. TemporalAccessor
Я считаю, что интерфейс.
@Test
public void convertTemportalAccessorTypeToDate() throws Exception {
Instant instant = Instant.now();
Date expected = Date.from(instant);
TemporalAccessor now = instant;
long nanos = now.getLong(ChronoField.NANO_OF_SECOND);
long epochSeconds = now.getLong(ChronoField.INSTANT_SECONDS);
Date date1 = Date.from(Instant.ofEpochSecond(epochSeconds, nanos));
assertThat(date1, is(expected));
}
что сказал, конкретный тип на самом деле должен поддерживать ChronoField
, и, кажется, бросить UnsupportedTemporalTypeException
, если это не так, может быть, завернуть в попытке поймать.
Тип 'Temporal' является настолько общим и абстрактным, что почти невозможно найти решение, то есть преобразование в' java.util.Date'. Рассмотрим, например, тип 'LocalDate'. Как вы можете преобразовать его без какой-либо контекстной информации, такой как часовой пояс или часы? –
Однако, если вы просто хотите конвертировать 'java.time.Instant', то это довольно просто. Посмотрите на API 'java.util.Date'. (см. метод 'from (Instant)'). –