Java 复制时间戳对象';s值到另一个对象
我在Java.sql.Timestamp对象(variable->confirmedDeliveryDate)中有一个日期,我想创建一个不同的对象并在其中添加几天。我创建了ts作为一个不同的时间戳变量,并使用了以下逻辑。我能够成功添加天数。但一旦ts更新为新时间,confirmedDeliveryDate也会更新为新日期。当我为ts创建了一个新对象时,为什么要更新confirmedDeliveryDate。请为同样的问题提出解决方案Java 复制时间戳对象';s值到另一个对象,java,object,time,calendar,timestamp,Java,Object,Time,Calendar,Timestamp,我在Java.sql.Timestamp对象(variable->confirmedDeliveryDate)中有一个日期,我想创建一个不同的对象并在其中添加几天。我创建了ts作为一个不同的时间戳变量,并使用了以下逻辑。我能够成功添加天数。但一旦ts更新为新时间,confirmedDeliveryDate也会更新为新日期。当我为ts创建了一个新对象时,为什么要更新confirmedDeliveryDate。请为同样的问题提出解决方案 Timestamp ts = new
Timestamp ts = new Timestamp(0L);
ts=confirmedDeliveryDate;
Calendar cal = Calendar.getInstance();
cal.setTime(ts);
cal.add(Calendar.DAY_OF_WEEK, 5);
ts.setTime(cal.getTime().getTime());
ts = new Timestamp(cal.getTime().getTime());
通过编码
ts=confirmedDeliveryDate;
您丢弃了新创建的时间戳,并将其替换为对confirmedDeliveryDate
因此,现在ts和confirmedDeliveryDate是一个且相同的,通过对其中一个调用setTime,两个变量名(引用相同的对象)的值都将更改
试着这样做:
Calendar cal = Calendar.getInstance();
cal.setTime(confirmedDeliveryDate );
cal.add(Calendar.DAY_OF_WEEK, 5);
Timestamp ts = new Timestamp(cal.getTime().getTime());
谢谢是的,我也犯了同样的错误。