The problem is exactly the bit you glossed over though: knowing the proper timezone on reading. Aside from Storing that separately to the database as well, I am not sure there is a great solution to this via standard JDBC.