It seems that if you create a value object on your server that contains a date in the default timezone for that server (GMT+0100), and then pop it over to the client with a different default timezone (GMT+0000), the date is quite correctly shown to be an hour earlier on the client than it was on the server.
This means using java.util.Date for storing just the date part of a timestamp will lead to issues as the time defaults to midnight, thus display -0100 on the client, i.e. midnight -0100 is 23:00 the day before. Solution: agree on a timezone and use the same one on both client and server. (only if your trying to store the date, the time element should not be relevent)