java - Time Zone off by 10 hours in Joda-Time -
i need parse string joda-time datetime (or java.util.date.) illustration of string i'm getting:
eventdatestr = 2013-02-07t16:05:54-0800
the code i'm using:
datetimeformatter presentation = datetimeformat.forpattern("yyyy-mm-dd kk:mm:ssz"); datetime evedate = presentation.parsedatetime(eventdatestr);
the above throws exception:
invalid format: "2013-02-07t16:05:54-0800" malformed @ "t04:03:20-0800"
so i'm parsing 't' out of there:
eventdatestr = eventdatestr.indexof("t") > 0 ? eventdatestr.replace("t", " ") : eventdatestr;
and trying again. time no exception time zone off:
2013-02-08t02:05:54.000+02:00
note difference: in original string timezone '-0800' , here it's '+02:00'. in turn changes entire date, day later.
what doing wrong?
call method withoffsetparsed
on datetimeformatter
object datetimeformatter
keeps time zone parsed string, instead of offsetting local time zone.
regarding why t
shown when print out datetime
, basil bourque has nice explanation in comment below.
regarding t
, datetime
not string nor contain string. datetimeformatter
instance can generate string representation of date, time, , time zone info stored within datetime
. when invoke tostring
method on datetime
(either implicitly or explicitly), built-in formatter based on iso 8601 used automatically. formatter uses yyyy-mm-ddthh:mm:ss.ssssss+00:00
format.
java datetime timezone jodatime datetime-format
No comments:
Post a Comment