0

このコードを使用する場合:

DateTimeFormatter fmt = DateTimeFormat.forPattern("EEE dd MMM yyyy HH:mm:ss Z");

この文字列で:

Tue 29 Oct 2013 11:30:16 +0000

エミュレーターでは例外なく動作しますが、実際のデバイスでアプリを起動すると、次の例外が出力されます。

10-29 12:30:20.870: W/System.err(751): java.lang.IllegalArgumentException: Invalid format: "Tue 29 Oct 2013 11:30:16 +0000"
10-29 12:30:20.870: W/System.err(751):  at org.joda.time.format.DateTimeFormatter.parseDateTime(DateTimeFormatter.java:873)
10-29 12:30:20.870: W/System.err(751):  at de.allmystery.allmyapp.fregman.KategorieObject.getDiff(KategorieObject.java:146)
10-29 12:30:20.870: W/System.err(751):  at de.allmystery.allmyapp.fregman.KategorieObject.<init>(KategorieObject.java:46)
10-29 12:30:20.870: W/System.err(751):  at de.allmystery.allmyapp.fregman.KategorieActivity.convertCat(KategorieActivity.java:261)
10-29 12:30:20.870: W/System.err(751):  at de.allmystery.allmyapp.fregman.KategorieActivity.access$0(KategorieActivity.java:259)
10-29 12:30:20.870: W/System.err(751):  at de.allmystery.allmyapp.fregman.KategorieActivity$4.run(KategorieActivity.java:152)
10-29 12:30:20.870: W/System.err(751):  at java.lang.Thread.run(Thread.java:1019)

KategoreObject の 146 行目と 147 行目:

DateTimeFormatter fmt = DateTimeFormat.forPattern("EEE dd MMM yyyy HH:mm:ss Z");
DateTime postTime = fmt.parseDateTime(getLast_post_date());

誰かがこのエラーで私を助けてくれますか?

4

1 に答える 1

0

問題は、デバイスがドイツ語を使用していることでした。そのため、DateTimeFormatter はロケール ドイツ語も使用しているようです。

私の場合、解決策は次のとおりです。

DateTimeFormatter fmt = DateTimeFormat.forPattern("EEE dd MMM yyyy HH:mm:ss Z").withLocale(Locale.ENGLISH);
于 2013-10-29T12:12:37.713 に答える