Dateクラスのdeprecationを修正する

   

随分前からですが、Dateクラスのメソッドが非推奨になっていました。
ただ、仕事などで過去に作ったプログラムでは未だ残ってたりするんですね。もっと酷いのはdeprecationを気にしない人のプログラムとか・・・
以下は、Dateクラスから推奨されるCalendarクラスを使用するための覚え書き(サンプル)になります。

年を文字列で取得

非推奨

// 2000/05/05
java.util.Date birthday = new java.util.Date(100, 5, 5); // deprecation
int year = birthday.getYear() + 1900; // deprecation
String yyyy = Integer.toString(year);

修正版

// Dateクラスの生成にはCalendarクラスを使う.
java.util.Calendar calendar = java.util.Calendar.getInstance();
calendar.set(2000, 5, 5);
java.util.Date birthday = calendar.getTime();
// フォーマット出力にはSimpleDateFormatクラスを使う.
String yyyy = new java.text.SimpleDateFormat("yyyy").format(birthday);

Dateクラスのフィールドを取得

何かしらの要因でプログラムが受け取るのがDateクラスの場合。Calendarクラスに設定してから取得します。

java.util.Date birthday = new java.util.Date(100, 5, 5);

java.util.Calendar calendar = java.util.Calendar.getInstance();
calendar.setTime(birthday);
int year = calendar.get(java.util.Calendar.YEAR);

 - Java