0

我正在尝试为给定的包含时间的字符串找到正确的模式。

这是我的字符串和我最近尝试的模式:

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)
4

1 回答 1

1

AFAIK jodatime 无法解析时区名称,因为它们不明确。您可以使用以下模式解析您的字符串:

"EE MMM dd yyyy HH:mm:ss 'GMT'ZZ '(CEST)'"

这会跳过时区名称,这应该没问题,因为您也有时区偏移量(+0200)。

于 2012-08-16T10:13:26.287 回答