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

cuh*_*cuh 6 java timezone parsing 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.

mat*_*tts 5

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

yyyy-MM-dd'T'HH:mm:ssXXX
Run Code Online (Sandbox Code Playgroud)

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

  • @matts的上述评论适用于我,我解析了Android中不支持Java 7的ISO8601日期模式的值.简单明了的解决方案. (2认同)