Ну, по двум связанным причинам. Это была очень плохая реализация концепции Даты и Времени, и она была заменена классом Calendar
.
Класс Calendar
, хотя и является улучшением, также оставляет желать лучшего, поэтому для серьезной работы с датой и временем все рекомендуют Joda-Time . Java 8 приносит новый java.time. * Пакет , вдохновленный Joda-Time, определяемый JSR-310 и предназначенный для замены старой даты / Календарь занятий.
Редактировать: В ответ на конкретный вопрос о том, почему реализация плохая, есть много причин. JavaDoc резюмирует это следующим образом:
К сожалению, API для этих функций не поддается интернационализации.
В дополнение к этому общему недостатку (который охватывает такие проблемы, как отсутствие компонента часового пояса, а также форматирование даты, которое лучше обрабатывается в DateFormat
и невозможность иметь негригорианское представление календаря), существуют конкретные проблемы, которые действительно вредят классу Date
, в том числе тот факт, что год представлен в смещении 1900 года по сравнению с годом нашей эры.
Calendar
имеет свои проблемы, но даже в JDK 1.1 было очевидно, что java.util.Date
не собирается его сокращать. Несмотря на то, что Calendar
является спорным худшим JDK API, потребовалось до версии 7, чтобы попытаться решить эту проблему.