Cả java.util.Date cũng không phải Oracle Date lưu trữ thông tin múi giờ. Trong trường hợp của bạn, trình điều khiển Jdbc chuyển đổi ngày của bạn bằng cách sử dụng múi giờ JVM. Bạn có thể sử dụng một trong các tùy chọn sau:
- Nếu bạn đang sử dụng PreparedStatement, bạn có thể sử dụng
setDate(int parameterIndex, Date x, Calendar cal)phương pháp để chỉ địnhCalendartheo múi giờ UTC. - Đối với Spring
jdbcTemplatethay vì chènDateđối tượng, chènCalendarvớiUTCmúi giờ -
TimeZone.setDefault(TimeZone.getTimeZone("GMT"))có thể được đặt trên JVM lvl - Sử dụng
-Duser.timezone=GMTkhi khởi động JVM