使用SimpleDateFormat解析时区格式的正确模式是什么

时间:2012-03-14 14:47:40

标签: java parsing timezone date-format

我想为Java SimpleDaterFormat定义一个模式来解析现有的字符串。

现有日期如下所示:2011-05-02T13:40:00+02:00

我尝试了不同的模式,但我得到了ParseExceptions。问题似乎是时区格式。

用Java打印模式:

  • yyyy-MM-dd'T'HH:mm:ssZ
    • 2012-03-14T15:40:44+0100
  • yyyy-MM-dd'T'HH:mm:ssz
    • 2012-03-14T15:41:58MEZ

但我怎么能

  • ???
    • 2011-05-02T13:40:00+02:00

我使用的是Java 6,而不是Java 7。

2 个答案:

答案 0 :(得分:5)

如果您可以使用Java 7或更高版本,则可以使用XXX模式使时区看起来像+02:00:

yyyy-MM-dd'T'HH:mm:ssXXX

否则,在解析之前,您可能必须操纵日期字符串以从时区中删除冒号。

答案 1 :(得分:1)

我知道这是一个有点老问题,但其他人可能会从我的提示中受益。 您可以使用0 2 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 。库documentation代表:

  

区域:'Z'输出不带冒号的偏移量,'ZZ'输出偏移量   冒号,'ZZZ'或更多输出区域ID。

您也可以将它与java 6一起使用。this question

中有更多示例