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ỉ địnhCalendar
theo múi giờ UTC. - Đối với Spring
jdbcTemplate
thay vì chènDate
đối tượng, chènCalendar
vớiUTC
múi giờ -
TimeZone.setDefault(TimeZone.getTimeZone("GMT"))
có thể được đặt trên JVM lvl - Sử dụng
-Duser.timezone=GMT
khi khởi động JVM