Почему была “новая Дата (международный год, международный месяц, международный день)” удержанный от использования?

58
задан Scott Bennett-McLeish 6 March 2011 в 17:47
поделиться

5 ответов

Первоначально, Date был предназначен для содержания всей логики относительно дат, но разработчики API в конечном счете поняли, что API, который они имели до сих пор, был горестно несоответствующим и не мог быть чисто расширен, чтобы правильно заниматься проблемами, такими как часовые пояса, локали, различные календари, времена перехода на летнее время, и т.д.

, Таким образом, они создали Calendar для контакта со всей этой сложностью и понизили Date к простой метке времени, удержав от использования всю ее функциональность, которая имела дело с форматированием, анализируя и отдельными полями даты.

BTW, внутренне эти методы такой как Date(int, int, int) конструктор теперь звонит Calendar, поэтому если Вы видите различие в скорости, тогда Вы делаете что-то не так при вызове Calendar.

концевая строка: это не Java Calendar API, который чрезмерно сложен, это - человеческое понятие дат, и единственная проблема с Calendar состоит в том, что это предлагает не очень в способе ярлыков на наиболее распространенные использования.

48
ответ дан Michael Borgwardt 7 November 2019 в 05:34
поделиться

API Даты Java долго были critized, посмотрите, например этот поток .

Вы могли бы хотеть проверить Joda-разовый или Apache Commons Lang для альтернативных утилит Date/Time.

8
ответ дан Community 7 November 2019 в 05:34
поделиться

Ответ является мобильностью.

класс Date не очень гибок. Можно определить даты, но не с любым преобразованием в другие форматы календаря. Таким образом, Sun решил использовать дополнительную иерархию классов (Calendar) для создания его более гибким.

, Тем не менее, это не очень удобно.

7
ответ дан Ergwun 7 November 2019 в 05:34
поделиться

Главным образом, потому что исходный java.util. Дата была чрезмерно увеличена в размере и не знающий абсолютно часовой пояс и не дружественная интернационализация.

Однако Дата все еще используется и очень хорошо в Объектах Значения, или скажите как тип данных. Насколько Вы делаете его неизменным явно, можно пойти легко. Я склонен думать, что это должно быть неизменно для другой цели, которой у нас есть Календарь для управления. Где его судьба управления ожидала, нужно считать что-то как, Joda-разовым.

[Отредактированный]

Просто не инстанцируют Даты, в последнем коде. Бесполезный. Можно достигнуть лучшего результата для сравнительного теста.

5
ответ дан Adeel Ansari 7 November 2019 в 05:34
поделиться

Конечно, никто никогда не использует никакой другой формат календаря, но новый API увеличивает объем кода для записи для 99%-го общего падежа, таким образом, это - большое благо для программистов Java, заплаченных МЕСТОПОЛОЖЕНИЕМ

3
ответ дан bobince 7 November 2019 в 05:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: