I have a JDBC Date column, which if a i use getDate is get the \'date\' part only 02 Oct 2009 but if i use getTimestamp i get the full \'date\
From this post i have come to the conclusion that JDBC does retrieve the timezone for the Timestamp (I don't think MS SQL support this as well, most Google results point to Oracle)
When the JDBC getTimeStamp method is called it only gets the 'milliseconds' portion and create a Date object with the server TimeZone, which is GMT.
When this Date object is presented to my client which is +2 GMT, it adds 2 hours which is the standard offset which leads to the extra hours.
I have corrected this by removing the time offset from the date i retrieve i.e. convert to the true GMT Date.