java - 如何将 Calendar.add() 结果分配给新的 Calendar 对象(在 Java 7 中)?

标签 java date calendar clone

我想在日期中添加一个月...

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

所以我想知道这里要做的“正确”事情是什么 - 我应该使用 Object.clone() 并转换回日历吗?本能地这似乎有点可怕和错误。或者,我应该使用如下语法从原始日历对象创建一个新的日历对象:

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

看起来也很可怕......肯定有一个更简单的方法 - 请有人告诉我我错过了一些东西!

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

最佳答案

日历不是一个漂亮的库,所以你不应该期望它是一个漂亮的库。

据我所知,Java 8 将有一个基于 JodaTime 的新日期/时间库。 ;)

please don't tell me to use Joda Time - I can't due to project constraints

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

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

相关文章:

ios - 使用 Swift 在 iOS8 中将事件添加到日历

Java 单选按钮更改另一个面板中的按钮文本

Java进程 Swing InputStream和OutputStream操作

java - 多线程秒表

java - 将 java.util.Date 转换为 datastax 的 LocalDate

javascript - 在angularjs中获取全局(UTC或GMT)时间而不是本地时间

java - 用捕获运行时异常来包装进程是否不好?

java - 使用 SimpleDateFormat 将字符串转换为日期

java日历返回错误的一周月份

calendar - 使用 dart 中的 googleapis 库更新日历并将其显示在网页上