我想创建一个副本,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 回答
![?](http://img1.sycdn.imooc.com/533e4d510001c2ad02000200-100-100.jpg)
杨魅力
TA贡献1811条经验 获得超6个赞
由于它是不可变的,你可以这样做:
LocalDateTime copy = createDate.plusHours(0);
System.out.println(createDate.equals(copy)); // true
plusHours 文档:
返回此 LocalDateTime 的副本,并添加指定的小时数。此实例是不可变的,不受此方法调用的影响。
![?](http://img1.sycdn.imooc.com/533e4c2300012ab002200220-100-100.jpg)
慕哥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;
}
...
![?](http://img1.sycdn.imooc.com/53339fdf00019de902200220-100-100.jpg)
暮色呼如
TA贡献1853条经验 获得超9个赞
因为LocalDateTime
是不可变的,你可以简单地引用同一个对象:
LocalDateTime createDate = LocalDateTime.now(); LocalDateTime modificationDate = createDate;
添加回答
举报
0/150
提交
取消