1

java.sql.time 不能正常工作吗?

这是我的代码

         Time lowertime=new Time(date.getTime());
         lowertime.setHours(lowertime.getHours()-11);
         System.out.println(lowertime);
         Time uppertime=lowertime;
         uppertime.setHours(lowertime.getHours()+1);
         System.out.println(uppertime);
         System.out.println(lowertime);

获得的结果

02:11:13
03:11:13
03:11:13

结果应该是:

 02:11:13
 03:11:13
 02:11:13

我搜索了 Java 文档及其已弃用的文档。获得 1 小时或(例如 58 分钟)时间范围的替代方法是什么。

我正在使用 java、Hibernate 框架和 MySql 数据库。对我来说最好的选择是什么。

4

1 回答 1

3
Time uppertime=lowertime;

由于上述行,uppertime 和 lowertime 是对同一个对象的两个引用。每次修改一个时,您也会修改另一个,因为它们实际上是一个单一的、唯一的对象。您需要创建一个副本:

Time uppertime = new Time(lowertime.getTime());
于 2013-06-29T07:51:36.280 回答