为了账号安全,请及时绑定邮箱和手机立即绑定

克隆 java.time.LocalDateTime 的最佳方法

克隆 java.time.LocalDateTime 的最佳方法

狐的传说 2021-07-14 17:06:36
我想创建一个副本,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 的副本,并添加指定的小时数。此实例是不可变的,不受此方法调用的影响。


查看完整回答
反对 回复 2021-07-22
?
慕哥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;

       } 

       ...


查看完整回答
反对 回复 2021-07-22
?
暮色呼如

TA贡献1853条经验 获得超9个赞

因为LocalDateTime是不可变的,你可以简单地引用同一个对象:

LocalDateTime createDate = LocalDateTime.now();
LocalDateTime modificationDate = createDate;


查看完整回答
反对 回复 2021-07-22
  • 3 回答
  • 0 关注
  • 408 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信