Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the correct pattern for parsing the timezone format with SimpleDateFormat

I want to define a pattern for the Java SimpleDaterFormat to parse existing strings.

The existing dates look like this: 2011-05-02T13:40:00+02:00.

I tried with different patterns, but I got ParseExceptions. The problem seems to be the timezone format.

Printing the pattern in 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

But how can I get

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

I'm using Java 6, not Java 7.

like image 675
cuh Avatar asked Mar 14 '12 14:03

cuh


2 Answers

If you can use Java 7 or newer, you can use the XXX pattern to get the timezone to look like +02:00:

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

Otherwise you might have to manipulate the date string to remove the colon from the timezone before parsing it.

like image 50
matts Avatar answered Oct 13 '22 00:10

matts


I know it's a bit old question, but someone else might benefit from my hint. You can use JodaTime. As library documentation stands:

Zone: 'Z' outputs offset without a colon, 'ZZ' outputs the offset with a colon, 'ZZZ' or more outputs the zone id.

You can use it as well with java 6. You have more examples in this question

like image 45
Augustin Ghauratto Avatar answered Oct 13 '22 00:10

Augustin Ghauratto