7

Calendarコピーを操作できるように、一時オブジェクト (既に存在する「永続的な」カレンダーのコピー)を作成する方法を理解する必要がありますtempCal.add(unit, value)add(unit, value)元のカレンダー オブジェクトを変更せずに保持する必要があるため、直接呼び出したくありません。

コピーを作成する私の試みはどれも実際にはうまくいかなかったので、私の現在の醜いハックは、 を呼び出しpermanentCal.add(unit, value)、目的の結果を表示してから呼び出すことpermanentCal.add (unit, -value)です。

4

5 に答える 5

18

java.util.Calendarにはcloneメソッドがあり、それを使用できます。その中のすべてのデータはプリミティブで構成されているため、問題が発生することはありません。

これらの答えを見てください:

于 2013-05-21T20:38:07.260 に答える
2

(Android には対応していません)

Calendar/Date の後継である Java 8 の不変LocalDateTimeに切り替えます。この API は大幅な改善であり、最初は圧倒されるかもしれません。

新しい日付minusDays(long)を返すようなメソッドがあります。これにより、スレッドセーフとすべてが実現します。たとえば、誰かが値を変更することを恐れずに値を共有できます。

于 2015-10-02T16:56:37.103 に答える
1

Joda-Time

これをクールな方法で行いたい場合は、Joda-Timeライブラリを使用してください。

この非常に成功したサードパーティのオープンソースの日時フレームワークは、現在 Java 8 以降に組み込まれているjava.timeフレームワークのインスピレーションを提供しました。

于 2013-05-21T20:39:32.157 に答える