Меня иногда путают разные типы Date в java и их практическое использование. Здесь я пытаюсь подвести итог моего пониманияДата против TimeStamp против календаря?
java.sql.Date :-
тонкая обертка вокруг значения миллисекунды, что позволяет JDBC, чтобы определить это как значение SQL DATE
java.sql.Timestamp :-
тонкая оболочка вокруг java.util.Date, что позволяет JDBC API для определения этого значения SQL TIMESTAMP. Это добавляет возможность удерживать значение дробных секунд SQL TIMESTAMP, позволяя спецификации с точностью до двух секунд до точности наносекундов
Я видел, что большинство проектов предпочитают Timestamp вместо даты. Я думаю, что основной причиной этого является то, что Timestamp может удерживать значение до точности nano секунд, тогда как данные могут сохраняться до миллисекунды. Верный?
Calendar :-
Этот класс предназначен для манипулирования датой, например: - для преобразования определенного момента времени и набор календарных полей, таких как год, месяц, DAY_OF_MONTH, ЧАС, и так далее, и для работы с календарем поля, такие как получение даты следующей недели. Хотя я не знаю, почему этот класс является абстрактным, когда существует только одна реализация, т.е. GregorianCalendar.
Когда вы говорите «Тип даты», я понимаю, вы имеете в виду 'java.util.Date' (о чем не спрашивали, но все еще актуально). В соответствии с ответом [Basil Bourque] (https://stackoverflow.com/a/32975887/5772882) я использую вместо этого 'java.time.Instant'. –