我想創建一個副本,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());有沒有最簡單的方法來創建兩個具有完全相同日期時間值的 LocalDateTime 對象?
3 回答

楊魅力
TA貢獻1811條經驗 獲得超6個贊
由于它是不可變的,你可以這樣做:
LocalDateTime copy = createDate.plusHours(0);
System.out.println(createDate.equals(copy)); // true
plusHours 文檔:
返回此 LocalDateTime 的副本,并添加指定的小時數。此實例是不可變的,不受此方法調用的影響。

慕哥9229398
TA貢獻1877條經驗 獲得超6個贊
LocalDateTime orig = LocalDateTime.now();
LocalDateTime copy = LocalDateTime.from( orig );
已編輯:此代碼將從 LocalDateTime 源返回相同的對象:
public static LocalDateTime from(TemporalAccessor temporal) {
if (temporal instanceof LocalDateTime) {
return (LocalDateTime) temporal;
}
...

暮色呼如
TA貢獻1853條經驗 獲得超9個贊
因為LocalDateTime
是不可變的,你可以簡單地引用同一個對象:
LocalDateTime createDate = LocalDateTime.now(); LocalDateTime modificationDate = createDate;
添加回答
舉報
0/150
提交
取消