「.」を削除するだけです。
df2.format(new Date()).replaceAll("\\.", ""));
編集、レモンの答えに関して:
ロケール フランス語を使用する場合のフォーマットに問題があるようです。.
したがって、私が説明したように、単純に削除を使用することをお勧めします。
実際、次のコード:
String format2 = "dd-MMM-yy";
Date date = Calendar.getInstance().getTime();
SimpleDateFormat sdf = new SimpleDateFormat(format2, Locale.FRENCH);
System.out.println(sdf.format(date));
sdf = new SimpleDateFormat(format2, Locale.ENGLISH);
System.out.println(sdf.format(date));
次の出力が表示されます。
28-oct.-09
28-Oct-09
再編集
わかりました、私は今あなたの問題を手に入れました。
最初に文字列を処理せずにこの問題を解決する方法がよくわかりません。アイデアは、元の文字列の月を包括的な月に置き換えることです:
String[] givenMonths = { "jan", "fév", "mars", "avr.", "mai", "juin", "juil", "août", "sept", "oct", "nov", "déc" };
String[] realMonths = { "janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc." };
String original = "09-oct-08";
for (int i = 0; i < givenMonths.length; i++) {
original = original.replaceAll(givenMonths[i], realMonths[i]);
}
String format2 = "dd-MMM-yy";
DateFormat df2 = new SimpleDateFormat(format2, Locale.FRENCH);
Date date = df2.parse(original);
System.out.println("--> " + date);
SimpleDateFormat
私は同意します、これはひどいですが、Date
クラスを使用する場合、他の解決策はありません。
別の解決策は、 Joda Timeなどの元の JDK ライブラリの代わりに、実際の日付と時刻のライブラリを使用することです。