Java 带有JodaTime的时间字符串的FormatterPattern
我试图为包含时间的给定字符串找到正确的模式 这是我的字符串和我最近尝试的模式:Java 带有JodaTime的时间字符串的FormatterPattern,java,jodatime,Java,Jodatime,我试图为包含时间的给定字符串找到正确的模式 这是我的字符串和我最近尝试的模式: 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); 我阅
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)
AFAIK jodatime无法解析时区名称,因为它们不明确。您可以使用以下模式分析字符串:
"EE MMM dd yyyy HH:mm:ss 'GMT'ZZ '(CEST)'"
这跳过了时区名称,这应该没问题,因为您还有时区偏移量(+0200)。很高兴知道时区无法解析,不幸的是,即使去掉最后一部分,我也遇到了一个异常。@Konstantin我刚刚用您的输入字符串尝试了这种模式,它会解析。这可能是区域设置问题-请尝试
formatter.withLocale(locale.US).parseDateTime(time)代码>例如。