Tôi đôi khi bị lẫn lộn bởi các loại Ngày khác nhau trong java và cách sử dụng thực tế của chúng. Dưới đây tôi đang cố gắng để tóm tắt sự hiểu biết của tôiNgày so với TimeStamp so với lịch?
java.sql.Date :-
Một wrapper mỏng xung quanh một giá trị mili giây cho phép JDBC để xác định đây là một giá trị SQL NGÀY
java.sql.Timestamp :-
Một wrapper mỏng xung quanh java.util.Date cho phép JDBC API để xác định đây là giá trị SQL TIMESTAMP. Nó cho biết thêm khả năng giữ giá trị giây phân đoạn SQL TIMESTAMP, bằng cách cho phép các đặc điểm kỹ thuật của phân số giây đến độ chính xác của nano giây
Tôi đã thấy hầu hết các dự án thích Dấu thời gian thay vì ngày tháng. Tôi nghĩ rằng lý do chính cho điều này là dấu thời gian có thể giữ giá trị cho đến khi nano giây chính xác trong khi dữ liệu có thể giữ cho đến vài milli giây. Chính xác?
Calendar :-
Lớp này được thiết kế dành cho ngày thao tác ví dụ: - để chuyển đổi giữa một khoảnh khắc đặc biệt trong thời gian và một bộ lĩnh vực lịch như NĂM, THÁNG, DAY_OF_MONTH, HOUR, và như vậy, và cho các thao tác lịch các lĩnh vực, chẳng hạn như nhận được ngày của tuần tiếp theo. Thật là tôi không biết tại sao lớp này là trừu tượng khi chỉ có một thực hiện tồn tại tức là GregorianCalendar.
Khi bạn nói "Loại ngày" tôi thu thập, bạn có nghĩa là 'java.util.Date' (mà không phải là những gì được hỏi về, nhưng vẫn có liên quan). Phù hợp với [câu trả lời của Basil Bourque] (https://stackoverflow.com/a/32975887/5772882) Thay vào đó, tôi sử dụng 'java.time.Instant'. –