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

为什么Java让我们编写更多代码?

为什么Java让我们编写更多代码?

温温酱 2021-04-17 19:15:34
为什么Java让我们编写更多代码?例如:long time = 1509694664442L;Calendar c = Calendar.getInstance();System.out.println(c.getTime());c.getTime().setTime(time); // doesn't update the calendar's time!System.out.println(c.getTime());// but this doesDate d = c.getTime();d.setTime(time);c.setTime(d);System.out.println(c.getTime());输出:Fri Jun 22 16:30:06 BRT 2018Fri Jun 22 16:30:06 BRT 2018Fri Nov 03 04:37:44 BRT 2017有人可以解释为什么发生这种情况,因为calendar.getTime()不会返回java.util.Date的新实例吗?
查看完整描述

2 回答

?
慕虎7371278

TA贡献1802条经验 获得超4个赞

Calendar.getTime()返回一个新Date实例,因此尝试更改返回的对象上的值是徒劳的,它对Calendar实例没有影响。


看一下来源:


public final Date getTime() {

    return new Date(getTimeInMillis());

}

这清楚地表明,在返回的日期上进行任何更改都不会更改日历对象本身。


您可以进行更改,然后致电calendar.setTime修改日期以解决此问题。


查看完整回答
反对 回复 2021-04-21
  • 2 回答
  • 0 关注
  • 140 浏览

添加回答

举报

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