コピー_Java.time.LocalDateTime
_を作成したいのですが、clone()
メソッドがありません。
私は次のことをしています:
_long epochMilli = Instant.now().toEpochMilli();
LocalDateTime createDate = LocalDateTime.ofInstant(Instant.ofEpochMilli(epochMilli), ZoneId.systemDefault());
LocalDateTime modificationDate = LocalDateTime.ofInstant(Instant.ofEpochMilli(epochMilli), ZoneId.systemDefault());
_
まったく同じ日時値を持つ2つのLocalDateTimeオブジェクトを作成する最も簡単な方法はありますか?
LocalDateTime
は不変であるため、単純に同じオブジェクトを参照できます。
LocalDateTime createDate = LocalDateTime.now();
LocalDateTime modificationDate = createDate;
LocalDateTime
は不変であるため、 Javadocによると 複製する本当の理由はありません。
同じインスタンスを使用するだけで、防御的にクローンを作成してパフォーマンスを低下させることなく、インスタンスを渡すことができます。
LocalDateTime orig = LocalDateTime.now();
LocalDateTime copy = LocalDateTime.from( orig );
編集済み:このコードは、LocalDateTimeソースから同じオブジェクトを返します。
public static LocalDateTime from(TemporalAccessor temporal) {
if (temporal instanceof LocalDateTime) {
return (LocalDateTime) temporal;
}
...
不変なので、次のようにできます。
LocalDateTime copy = createDate.plusHours(0);
System.out.println(createDate.equals(copy)); // true
指定された時間数を加算したこのLocalDateTimeのコピーを返します。このインスタンスは不変であり、このメソッド呼び出しの影響を受けません。