This snippet of code always parses the date into the current timezone, and not into the timezone in the string being parsed.
final DateTimeFormatter df = DateTimeFormat .forPattern("EEE MMM dd HH:mm:ss 'GMT'Z yyyy"); final DateTime dateTime = df .parseDateTime("Mon Aug 24 12:36:46 GMT+1000 2009"); System.out.println("dateTime = " + dateTime); // outputs dateTime = 2009-08-24T04:36:46.000+02:00
It outputs:
dateTime = 2009-08-24T04:36:46.000+02:00
whereas I expect:
dateTime = 2009-08-24T04:36:46.000+10:00
Any ideas what I’m doing wrong?
Advertisement
Answer
OK, further Googling gave me the answer to my own question: use withOffsetParsed()
, as so:
final DateTimeFormatter df = DateTimeFormat .forPattern("EEE MMM dd HH:mm:ss 'GMT'Z yyyy"); final DateTime dateTime = df.withOffsetParsed() .parseDateTime("Mon Aug 24 12:36:46 GMT+1000 2009");
This works.