日付をフォーマットする

DBより取得した値を、MM月dd日に変換する。
ただし、一桁の場合はスペース埋めを行う。
(ゼロ埋めなら簡単なのに・・・)

// DB取得値のつもり
String dateStr = "2010-02-19 23:44:40";
// Dateに変換
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date date = sdf.parse(dateStr);

// Calendarを取得
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);

// フォーマット
int month = calendar.get(Calendar.MONTH) + 1;
int day = calendar.get(Calendar.DAY_OF_MONTH);
String formatDate = String.format("%2d月%2d日", month, day);

// 出力
System.out.println(formatDate);

出力結果
2月19日
↑スペースがちゃんと出力されています。
もっと簡単にできると思うんだけど・・・


ちなみに、ゼロ埋めで良ければ

// フォーマット
SimpleDateFormat sdf2 = new SimpleDateFormat("MM月dd日");
String formatDate2 = sdf2.format(date);

// 出力
System.out.println(formatDate2);

出力結果
02月19日

ゼロ埋めならこんなに簡単。
仕様変更してくれんかなー。(たぶん無理)