Các loại cột trong MySQL là gì? Tôi nghi ngờ đó là DATETIME. Loại này không lưu trữ "khoảnh khắc trong thời gian", nó lưu trữ "giờ trên đồng hồ", vì vậy có thể có nghĩa là thời điểm khác nhau ở các múi giờ khác nhau.
Khi trình điều khiển MySQL ghi java.util.Date vào cột DATETIME, nó phải chọn một số múi giờ để viết "giờ trên đồng hồ", vì cùng một java.util.Date có thể có nghĩa là giờ khác nhau ở các múi giờ khác nhau. Nó lưu trữ giờ như trong múi giờ cục bộ của máy chủ MySQL.
LocalDateTime không có vấn đề này, vì nó giống như DATETIME. Nó đại diện cho giờ trên đồng hồ, không phải thời điểm, do đó năm / tháng / ngày-giờ / phút / giây chỉ được lưu trữ trong cơ sở dữ liệu. Thông báo trong nhật ký ngủ đông LocalDateTime được cung cấp nguyên trạng, trong khi có múi giờ ("CST") bên cạnh Ngày.
Nói chung, bạn nên lưu trữ thời gian luôn ở dạng UTC, vì vậy hãy sử dụng DateTime, không phải Date hay LocalDateTime. DateTime với trình chuyển đổi jadira luôn lưu trữ / đọc DATETIME dưới dạng UTC.