Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带有JodaTime的时间字符串的FormatterPattern_Java_Jodatime - Fatal编程技术网

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)例如。