我正在尝试为包含时间的给定String找到正确的模式。
这是我的String和我最近尝试过的模式:
String time = "Sun Jul 01 2012 11:25:57 GMT+0200 (CEST)";
DateTimeFormatter formatter = DateTimeFormat.forPattern("EEE MMM dd yyyy HH:mm:ss 'GMT'ZZ '(CEST)'");
DateTime date = formatter.parseDateTime(time);
我阅读了有关使用哪些字符的文档,但我仍然不完全清楚如何匹配我给定的字符串。
如果你们其中一个人可以帮我解决这个问题,那真是太棒了!这是我得到的例外:
Exception in thread "main" java.lang.IllegalArgumentException: Invalid format: "Sun Jul 01 2012 11:25:57 GMT+020..."
at org.joda.time.format.DateTimeFormatter.parseDateTime(DateTimeFormatter.java:866)
at Main.main(Main.java:10)
答案 0 :(得分:1)
AFAIK jodatime无法解析时区名称,因为它们不明确。您可以使用以下模式解析字符串:
"EE MMM dd yyyy HH:mm:ss 'GMT'ZZ '(CEST)'"
跳过时区名称,这应该没问题,因为你还有时区偏移(+0200)。