1

をに変換したいStringのですDateが、次の例外が発生します。

java.text.ParseException: Unparseable date: "Thu Jan 27 14:47:58 CET 2011"
    at java.text.DateFormat.parse(DateFormat.java:335)
    at de.datev.boxi.Main.run(Main.java:36)
    at com.crystaldecisions.sdk.plugin.desktop.program.internal.ProgramWrapper.main(ProgramWrapper.java:174)

文字列を日付にフォーマットするには、どのパラメータを使用する必要がありますか?

私のプログラムは次のようになります。

try {
    SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
    Date d1 = sdf.parse("Thu Jan 27 14:47:58 CET 2011");
    System.out.println(d1);
} catch (ParseException ex) {
    ex.printStackTrace();
}
4

2 に答える 2

3

試してみてください:

new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH);
于 2013-01-08T14:48:32.650 に答える
2

このような「複雑な」タイムスタンプの解析は、Javaでは常に注意が必要です。私も同じ経験をしました。

どちらのJavaでも、タイムゾーンの解析に問題があります。

または、デフォルトのロケールが時間文字列と一致しない可能性があります。ここで、英語のロケールを呼び出しに追加することをお勧めします。

SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH);

実行環境によっては、アプリケーションが一部のマシンで動作し、他のマシンで失敗する可能性があるため、デフォルトのロケールによっては、常にこのパラメーターを追加することをお勧めします。

于 2013-01-08T14:53:31.447 に答える