Correct, timestamptz
doesn't save the inserted timezone. It always saves UTC timestamp for whatever was inserted. On SELECT, It always delivers that same "point in time" in whatever timezone the requestor is using. In JDBC, that delivers a java.util.Date
(or java.sql.Timestamp, a subclass) at that UTC point in time, which then stringifies to whatever timezone the JVM is using.
No, the Ignition date object doesn't have a timezone. It carries UTC always. That object is stringified in whatever timezone is present when printed, logged, or deliberately formatted. Changing the system timezone changes the zone used for default stringification. Your DB data is correct. Your display/print/formatting operations are broken--don't use default stringification.
Please read this entire topic: