Ich denke, Sie haben diese Frage etwas falsch gestellt. Ich glaube eher, dass Sie wollen Wie konvertiere ich eine konkrete java.time-Klasse, z. Instant, LocalDate, zu einem Date über eine generische Schnittstelle. TemporalAccessor
Ich glaube, dass diese Schnittstelle ist.
@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));
}
, was gesagt, hat die konkrete Art tatsächlich die ChronoField
, zu unterstützen und scheint UnsupportedTemporalTypeException
zu werfen, wenn es nicht so vielleicht in einem Try-Catch-wickelt.
Der Typ 'Temporal' ist so allgemein und abstrakt, dass es nahezu unmöglich ist, eine Lösung zu finden, d.h. eine Umwandlung in' java.util.Date'. Betrachten Sie zum Beispiel den Typ 'LocalDate'. Wie kann man es ohne kontextuelle Informationen wie Zeitzone oder Uhrzeit konvertieren? –
Wenn Sie jedoch 'java.time.Instant' nur konvertieren möchten, dann ist es ziemlich einfach. Sehen Sie sich die API von 'java.util.Date' an. (Siehe Methode 'from (Instant)'). –