【问题标题】:Joda DateTimeFormatter IllegalFormatException on real device, but is working in emulatorJoda DateTimeFormatter IllegalFormatException 在真实设备上,但在模拟器中工作
【发布时间】:2013-10-29 20:12:37
【问题描述】:

如果我使用此代码:

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());

有人可以帮我解决这个错误吗?

【问题讨论】:

    标签: android jodatime


    【解决方案1】:

    问题是设备使用德语,所以 DateTimeFormatter 似乎也在使用语言环境德语

    在我的情况下,解决方案是:

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

    【讨论】:

      猜你喜欢
      • 2016-05-29
      • 2014-09-03
      • 1970-01-01
      • 2019-05-09
      • 1970-01-01
      • 2016-02-14
      • 1970-01-01
      • 2017-11-14
      • 1970-01-01
      相关资源
      最近更新 更多