有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将时间戳对象的值复制到另一个对象

我有一个爪哇的约会。sql。Timestamp对象(变量->;confirmedDeliveryDate),我想创建一个不同的对象并在其中添加几天。我创建了ts作为一个不同的时间戳变量,并使用了以下逻辑。我能够成功添加天数。但一旦ts更新为新时间,confirmedDeliveryDate也会更新为新日期。当我为ts创建了一个新对象时,为什么要更新confirmedDeliveryDate。请为同样的问题提出解决方案

            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) 个答案

  1. # 1 楼答案

    通过编码

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