Ich möchte eine Kopie Java.time.LocalDateTime
erstellen, die jedoch keine clone()
-Methode hat.
Was ich mache ist folgendes:
long epochMilli = Instant.now().toEpochMilli();
LocalDateTime createDate = LocalDateTime.ofInstant(Instant.ofEpochMilli(epochMilli), ZoneId.systemDefault());
LocalDateTime modificationDate = LocalDateTime.ofInstant(Instant.ofEpochMilli(epochMilli), ZoneId.systemDefault());
Gibt es eine einfachste Möglichkeit, zwei LocalDateTime-Objekte mit genau demselben Datums-/Zeitwert zu erstellen?
Da LocalDateTime
unveränderlich ist, können Sie einfach dasselbe Objekt referenzieren:
LocalDateTime createDate = LocalDateTime.now();
LocalDateTime modificationDate = createDate;
Da ein LocalDateTime
unveränderlich ist, gibt es laut Javadoc keinen wirklichen Grund, es zu klonen.
Sie können einfach dieselbe Instanz verwenden und weitergeben, ohne sie defensiv klonen zu müssen und Leistung zu verlieren.
Da es unveränderlich ist, können Sie es so machen:
LocalDateTime copy = createDate.plusHours(0);
System.out.println(createDate.equals(copy)); // true
Gibt eine Kopie dieser LocalDateTime mit der angegebenen Anzahl von .__ zurück. Stunden hinzugefügt. Diese Instanz ist unveränderlich und von dieser Methode nicht betroffen Anruf.
LocalDateTime orig = LocalDateTime.now();
LocalDateTime copy = LocalDateTime.from( orig );
bearbeitet : Dieser Code gibt das gleiche Objekt aus LocalDateTime-Quellen zurück:
public static LocalDateTime from(TemporalAccessor temporal) {
if (temporal instanceof LocalDateTime) {
return (LocalDateTime) temporal;
}
...