2

「Sun Feb 24 09:34:20 IST 2013」のような日付文字列を解析するにはどうすればよいですか。完全な日付形式の解析が失敗する理由は何ですか?

DateFormat fullDf = DateFormat.getDateInstance(DateFormat.FULL);
String str = fullDf.format("Sun Feb 24 09:34:20 IST 2013");
System.out.println(str);

例外は次のとおりです。

java.lang.IllegalArgumentException: Cannot format given Object as a Date
4

4 に答える 4

8
DateFormat fullDf = DateFormat.getDateInstance(DateFormat.FULL);
String str = fullDf.format(dt); 
System.out.println(str);

その問題だったと思いますformat(dt.toString())

DateFormatDate 値でのみ機能します。私はずっと前に同様の問題に直面しました。常に参照を確認してください。

アップデート:

スレッドの著者が言及したように:

擬似コード:

DateFormat inFormatter = new SimpleDateFormat(<pattern>);
DateFormat outFormatter = new SimpleDateFormat(<pattern>);

String source; // parsed text from file
Date dt = inFormatter.parse(source);
String output = outFormatter.format(dt);
于 2013-03-22T11:53:52.150 に答える
0

DateFormatクラスで文字列をフォーマットすることはできません。代わりに日付オブジェクトを使用してください。

交換

String str = fullDf.format(dt.toString());

String str = fullDf.format(dt);

そしてそれは動作します。

于 2013-03-22T11:59:51.773 に答える
0

行を変更してください

 String str = fullDf.format(dt.toString())

 String str = fullDf.format(dt);

デフォルトのtoString()は予想とはまったく異なる値を返す可能性があるため、toString()よりもオブジェクトをより適切に処理します。

于 2013-03-22T11:56:02.723 に答える
0

DateFormatのフォーマット関数はオブジェクトを取り込むことができますが、それらのオブジェクトは数値または日付のいずれかである必要があります。

だから、String str = fullDf.format(dt);仕事でのみString str = fullDf.format(now - dateOffset);機能します。

于 2013-03-22T11:57:23.827 に答える