我想在日期上加上一个月...

但是我想将结果分配给新变量而不更改原始日期。
我想以标准方式执行此操作,似乎正在使用Calendar.add(),但是该方法更改了用于计算的Calendar对象。

因此,我想知道这里要做的“适当”的事情是-我应该使用Object.clone()并投射回Calendar吗?本能地看似有点可怕和错误。或者,我应该使用以下语法从原始对象创建一个新的Calendar对象:

Calendar newCalendar = Calendar.getInstance();
newCalendar.setTime(originalCalendar.getTime());


似乎也太可怕了……肯定必须有一种更简单的方法-请有人告诉我我缺少了一些东西!

(...但请不要告诉我使用Joda Time或Java 8-由于项目限制,我不能这样做。)

最佳答案

日历不是一个漂亮的库,因此您不应该期望它如此。

AFAIK,Java 8将具有一个基于JodaTime的新日期/时间库。 ;)


  请不要告诉我使用Joda Time-由于项目限制,我不能


在这种情况下,只需学会使用日历及其怪癖即可。

关于java - 如何将Calendar.add()结果分配给新的Calendar对象(在Java 7中)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13841949/

10-13 09:18