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)

类别对象中的第 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 回答