Hi Thomas!
Yes you are right and I' wrong ;-) => It's java.sql.Date and not java.util.Date.
What you might want to do is use getTimestamp() instead.
getTimestamp() looks much better.
But why do you use internal classes of the database engine?
I don't use the internal classes in my application. I only set the value of a java.sql.TIMESTAMP colum by PreparedStatement.setObject(int, Object).
My Object is the ISO8601 String (e.g. "2012-11-08T12:40:11.156Z") and I have the problem that if I select the column again, the "outcoming" date is not the same as the "incoming" one. So I was looking for the error cause.
I wrote a JUnit test for you. There you can see that some strings will be correctly parsed (e.g. '2012-11-08T12:40:11.156Z') and some other ones like '2012-11-06T23:00:00.000Z' will not correctly parsed by the h2database.
It looks like there is a problem if the time in the ISO Strings is set to twelve o'clock at night.
Regards
Steve