You print the result of Date.toString() . A Date has no idea about the time zone - it's just milliseconds since the Unix UTC era. Date.toString() always uses the default system time zone.
Please note that you should not expect βMon Oct 31 13:19:56 GMT 2011β, given that you have specified a time that indicates the time zone is 11, not 13.
If you want to use a specific time zone for printing, you should use a different DateFormat for printing, and not use Date.toString() . ( Date.toString() continues to be confusing, like this, this is really unsuccessful.)
source share