日付解析の日付の例で問題が発生しました:
SimpleDateFormat parserSDF=new SimpleDateFormat("EEE MMM dd HH:mm:ss zzzz yyyy", Locale.getDefault());
parserSDF.parse("Wed Oct 16 00:00:00 CEST 2013");
例外を得た
正確に私はこの形式の日付をyyyy-MM-ddに解析したいと思います:
SimpleDateFormat parserSDF = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
Date date = parserSDF.parse("Wed Oct 16 00:00:00 CEST 2013");
take:Java.text.ParseException:Unparseable date: "Wed Oct 16 00:00:00 CEST 2013"
OKに変更して動作します:
SimpleDateFormat parserSDF = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzzz yyyy", Locale.ENGLISH);
Date date = parserSDF.parse("Wed Oct 16 00:00:00 CEST 2013");
あなたがポーランドにいるように見えるので、あなたのためのLocale.getDefault()
はpl-PL
であると仮定します。
したがって、日付文字列内の英語の単語は、解析不能な日付を引き起こします。
適切なポーランドの日付String
は次のようになります
"Wt paź 16 00:00:00 -0500 2013"
そうでない場合は、Locale
オブジェクトが英語の単語でSimpleDateFormat
日付を解析できるように、String
をLocale.ENGLISH
に変更します。
あなたや他の人がしばしばどのデフォルトを知らないLocale.default
を使用する代わりに、locale.ENGLISH
を使用して決定できます。文字列の日付は英語の形式だからです。他の国にいる場合、形式は異なります。
コードの例を次に示します。
public static void main(String[] args) {
try {
SimpleDateFormat parserSDF = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy", Locale.ENGLISH);
Date date = parserSDF.parse("Wed Oct 16 00:00:00 CEST 2013");
System.out.println("date: " + date.toString());
} catch (ParseException ex) {
ex.printStackTrace();
}
}
結果はdate: Wed Oct 16 05:00:00 ICT 2013
になります。または、フィールドを使用して、この日付のどの部分を印刷するかを決定できます。
このヘルプを願っています:)