Как я могу разобрать дату, включая часовой пояс с Joda Time
этот фрагмент кода всегда анализирует дату в текущем часовом поясе, а не в часовом поясе в анализируемой строке.
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
выдает:
dateTime = 2009-08-24T04:36:46.000+02:00
тогда как я ожидаю:
dateTime = 2009-08-24T04:36:46.000+10:00
любые идеи, что я делаю неправильно?
2 ответа:
ОК, дальнейшее гугление дало мне ответ на мой собственный вопрос: use
withOffsetParsed()
вот так: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");
это работает.