Einfachste Konvertierung:
Instant.from(localDateTime).toEpochMilli()
ENTSCHULDIGUNG, das funktioniert nicht und führt zu folgendem Fehler:
"Nicht unterstütztes Feld: InstantSeconds",
" java.base/java.time.LocalDate.get0(LocalDate.java:708)",
" java.base/java.time.LocalDate.getLong(LocalDate.java:687)",
" java.base/java.time.LocalDateTime.getLong(LocalDateTime.java:720)",
" java.base/java.time.Instant.from(Instant.java:373)",
" com.capitalone.rupol.ruleengine.util.LocalDateSerializer.serialize(LocalDateSerializer.java:25)",
"Instant kann nicht aus TemporalAccessor erhalten werden: 2024-02-03T00:00 des Typs java.time.LocalDateTime",
" java.base/java.time.Instant.from(Instant.java:378)",
" com.capitalone.rupol.ruleengine.util.LocalDateSerializer.serialize(LocalDateSerializer.java:25)",
" com.capitalone.rupol.ruleengine.util.LocalDateSerializer.serialize(LocalDateSerializer.java:11)",
" com.fasterxml.jackson.databind.ser.std.MapSerializer.serializeOptionalFields(MapSerializer.java:869)",
" com.fasterxml.jackson.databind.ser.std.MapSerializer.serializeWithoutTypeInfo(MapSerializer.java:760)",
Die LocalDateTime trägt keine Zeitzone. Die Instant trägt keine Zeitzone. Seltsamerweise erfordern viele andere Konvertierungen das Angeben einer Zeitzone, die nicht erforderlich ist. Dies vermeidet die Verwendung einer Zeitzone-Offset in jedem Schritt und konvertiert intern von Millisekunden zu Millisekunden.
Es ist merkwürdig, dass die LocalDateTime keine Konvertierung zu Instant anbietet, da sowohl LocalDateTime als auch Instant keine Zeitzone-Repräsentation beinhalten, aber diese Factory-Methode den Job erledigt.