新しいJava.time
APIは、Java.util.Date
からさらに多くのものを提供しているようです。
Java 8?Java.util.Date
とJava.time
を完全に回避する必要があるため、新しいJava.util.Date
APIがある場合にJava.util.Calendar
を使用する理由はありますか?
短い答え:新しいAPIJava.time
は、Java.util.Date
とJava.util.Calendar
を備えた旧世界よりもはるかに優れています。そうです、新しいコードでは新しいAPIを優先する必要があります。
簡単な概要:一度書いたら 表形式の機能の比較 さまざまな日時ライブラリについて。 Java.time
が欠落しているが、旧世界には存在する機能はほとんどありません。
FieldPosition
に基づく印刷(SwingコンポーネントFormattedTextField
で使用)非推奨について:Java.util.Date
のほとんどの部分はJava 1.1以降非推奨ですが、クラス自体(およびJava.util.Calendar
も)は公式に非推奨ではなく、事実上のレガシーとして宣言されています。古いクラスのサポートは、レガシーコードとの下位互換性の目標にとって依然として重要です。したがって、オラクルはおそらく将来いつでもサポートを停止することはありません。しかし、おそらくOracleはもっと適用するでしょう 洗練された非推奨戦略 。
将来の開発: Java-8のリリースに完全に新しい日付/時刻API(Java.time
)が組み込まれただけでなく、Java.util.Calendar
にいくつかの機能拡張が含まれているのは興味深いことです。たとえば Calendar.Builder または SHORT_STANDALONE など。推測することしかできませんが、これは、Oracleが近い将来に古いAPIのサポートを停止する意思がないことも示しているようです。