日付変換用のクラス。

DateFormatは、
「文字列」⇔「Date」の変換で利用する。

特に「寛大なparse」と「厳密なparse」が
あるので注意する。

基本

「寛大なparse」と「厳密なparse」

文字列からDateに変換する場合、
この2つのモードみたいなものがDateFormatにはある。

違いとしては
カレンダー上の存在しない日付(例えば2011/2/31など)をparse()する場合、
「寛大なparse」では解析できて、「厳密なparse」は例外となる。

日付入力のバリデーションで利用する場合などは、
この違いは大きいので注意する。

デフォルトは「寛大なparse」なので、変更する場合は次のようにする。

dateFormat.setLenient(false);

和暦

"ja", "JP", "JP"のLocaleを指定すると、和暦表示できる。

final String pattern = "GGGGyy年M月d日";
final Locale japaneseLocale = new Locale("ja", "JP", "JP");
DateFormat dateFormat = new SimpleDateFormat(pattern, japaneseLocale);
  
Calendar calendar = new GregorianCalendar(2011, Calendar.JANUARY, 2);
log.debug(dateFormat.format(calendar.getTime()));
出力
平成2312