On Thu, Feb 4, 2010 at 14:15, xor exor <[email protected]> wrote: > On Thu, Feb 4, 2010 at 5:06 PM, Alexander Klimetschek <[email protected]>wrote: > >> On Thu, Feb 4, 2010 at 13:57, xor exor <[email protected]> wrote: >> > Well for example i'm getting the date as 2010 12 1 17:00 GMT+2 the time >> that >> > i get from >> > ISO8601.format is OK i mean it is GMT0 15:00 then i try to save that >> value >> > to db with setProperty the date value is messed to something like GMT+4 >> > 19:00 >> >> Should be obvious: 15:00 GMT+00:00 == 19:00 GMT+04:00 >> > > Of course it is but what i want to do is save time in database as 15:00 > GMT+00:00 not as > 19:00 GMT+04:00 that is what my method is doing (which source is in my first > post). My method is creating a Calendar with GMT0 as timezone and passing it > to setProperty method ,but somehow my date is messed and saved differently > (with different timezone)to database that is the problem. I hope that is > clearer.
Look at your Calendar object (ie. log all important fields, including the timezone) directly before you hand it over to setProperty(). I guess it does not look like you want. The Java date API is not necessarily intuitive and has all its quirks. Just replacing the timezone with GMT+0 does not necessarily work, in most cases it is best to start with a fresh Calendar object in the new timezone and pass it the utc millis from the old calendar. The setProperty(Date) method should never change anything, it internally will only serialize the date as a iso8601 string and then stores it like a string property internally. Regards, Alex -- Alexander Klimetschek [email protected]
