2 つの日付フィールドがあります。ユーザーは、jQuery 日時ピッカーから日付を選択できます。これは、(Spring のカスタム プロパティ エディターを介して) UTC 形式に変換され、フォームの送信時に Java Bean に取り込まれます。
Java Bean からのこれらのインスタンスは、次のようなリフレクションを介しDateTime
て取得されます。org.apache.commons.beanutils.PropertyUtils
final Object object1 = PropertyUtils.getProperty(beanObject, firstDate);
final Object object2 = PropertyUtils.getProperty(beanObject, secondDate);
これらのオブジェクトは に型キャストされDateTime
ます。
if(object1!=null && object2!=null)
{
final DateTime startDate=((DateTime)object1).withZone(DateTimeZone.forID("Asia/Kolkata"));
final DateTime endDate=((DateTime)object2).withZone(DateTimeZone.forID("Asia/Kolkata"));
System.out.println("startDate = "+startDate+"\nendDate = "+endDate);
}
これにより、次の出力が生成されます。
startDate = 2013-02-17T22:45:59.000+05:30
endDate = 2013-02-18T22:46:00.000+05:30
これらの日付をこの形式に変換する必要があります -dd-MMM-yyyy HH:mm:ss
私が試した次のアプローチは機能しません。
DateTime newStartDate=new DateTime(startDate.toString("dd-MMM-yyyy HH:mm:ss"));
DateTime newEndDate=new DateTime(startDate.toString("dd-MMM-yyyy HH:mm:ss"));
System.out.println("newStartDate = "+newStartDate+"\nnewEndDate = "+newEndDate);
次の例外が発生します。
java.lang.IllegalArgumentException: 無効な形式: "17-Feb-2013 22:45:59" は "-Feb-2013 22:45:59" で不正な形式です
では、これらの日付を必要な形式に変換する方法は?