1

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" で不正な形式です

では、これらの日付を必要な形式に変換する方法は?

4

1 に答える 1

1

ADateTimeにはフォーマットがありません。1970年1月1日からのミリ秒数の値と年表があります。DateTimeフォーマットを選択する必要があるのは、を文字列に変換するときだけです。そして、あなたはあなたの質問でそれをしているので、あなたはすでにそれをする方法を知っています。

ですから、あなたがやろうとしていることは意味がありません。

于 2013-02-18T20:05:04.933 に答える