将Timestamp对象的值复制到另一个对象

时间:2015-12-30 12:30:01

标签: java object time calendar timestamp

我在Java.sql.Timestamp对象中有一个日期(variable-> confirmedDeliveryDate),我想创建一个不同的对象并添加几天。我创建了ts作为不同的时间戳变量,我使用了以下逻辑。我能够成功添加日子。但是一旦ts更新了新的时间,confirmDeliveryDate也会用新的日期更新。当我为ts创建一个新对象时,为什么确认了更新的DeliveryDate。请为此建议解决方案。

            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());

1 个答案:

答案 0 :(得分:0)

通过编码

        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());