文字列を解析してJoda-Time DateTime (または java.util.Date) にする必要があります。これは取得している文字列の例です。
eventDateStr = 2013-02-07T16:05:54-0800
私が使用しているコード:
DateTimeFormatter presentation = DateTimeFormat.forPattern("yyyy-MM-dd kk:mm:ssZ");
DateTime eveDate = presentation.parseDateTime(eventDateStr);
上記は次の例外をスローします。
Invalid format: "2013-02-07T16:05:54-0800" is malformed at "T04:03:20-0800"
だから私はそこから「T」を解析しています:
eventDateStr = eventDateStr.indexOf("T") > 0 ? eventDateStr.replace("T", " ") : eventDateStr;
再試行します。今回も例外ではありませんが、タイムゾーンはオフです:
2013-02-08T02:05:54.000+02:00
違いに注意してください。元の文字列のタイムゾーンは「-0800」ですが、ここでは「+02:00」です。これにより、日付全体が変更され、1 日後になります。
私は何を間違っていますか?