This is actually an artifact of the JDBC spec which at the moment eludes me, but IIRC the time defaults to the time of the server running the application; not the server.
I’ve created a user with a time zone of America/Chicago and a server time zone of America/New York. I run the following query and America/New York is returned. The user time zone setting is ignored. It doesn’t seem to be usable via JDBC.
select now(), extract(timezone FROM now()), current_setting('TIMEZONE'), now()-interval '1 hour' as "1HourAgo"
I don’t see any documented PostgreSQL JDBC connection properties that cause the user time zone to be honored. Is there a way to via a JDBC connection to cause the user time zone to be used?