Nói một cách đơn giản, chọn một DATE
oracle thành một Date
trong Java vốn có vấn đề. Đó là bởi vì chúng khác nhau về cơ bản. Một Oracle DATE
là sự kết hợp của năm, tháng, ngày, giờ, phút, giây mà không có bất kỳ thông tin múi giờ nào, vì vậy nó có thể là bất kỳ múi giờ nào, có hoặc không có tiết kiệm ánh sáng ban ngày - Oracle không biết, vì thông tin đó không được bao gồm trong DATE
.
Mặt khác, Ngày Java về cơ bản là số mili giây kể từ ngày 1/1/1970 00:00:00 UTC.
Khi một Oracle DATE
chuyển sang một Date
trong Java , trình điều khiển JDBC chỉ có thể đoán múi giờ sẽ áp dụng. Kết quả khá khó đoán, đặc biệt khi dữ liệu trong cơ sở dữ liệu sử dụng múi giờ khác với người dùng.