私は次のコードを試しています、
Calendar signupDate = Calendar.getInstance();
signupDate.set(Calendar.YEAR, 2014);
signupDate.set(Calendar.MONTH, 01);
signupDate.set(Calendar.DAY_OF_MONTH, 01);
Date signupDateTime = signupDate.getTime();
new Object[]{signupDateTime};
Date date = (Date) params[0];
String format = (String) params[1];
try {
SimpleDateFormat sdf = new SimpleDateFormat(format, Locale.ENGLISH);
String expDateStr = (String) sdf.format(date);
System.out.println("Expiration Date: "+expDateStr);
} catch (Throwable t) {
throw new RuntimeException("Could not execute DateToString function for Date:" + params[0] + " with Pattern:" + params[1], t);
}
このプログラムは次を出力します: 有効期限: 2014-02-32
デバッグ中に、Java API の java.text.DateFormat クラスに次の関数に到達しました。
public final String format(Date date)
{
return format(date, new StringBuffer(),
DontCareFieldPosition.INSTANCE).toString();
}
format 関数の日付パラメーターのランタイム値は、Fri Feb 01 17:58:30 PST 2013 です。
しかし、この関数は次を返します: 2014-02-32
フォーマットが 01 を 32 に変換する方法がわかりません。
なにか提案を?
ありがとう、
ビジェイ・ボア