Почему java.util.Date представляет год как «1900 год»?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Почему java.util.Date представляет год как «1900 год»?

Сообщение Anonymous »

В java.util.Date:

Код: Выделить всё

 * In all methods of class Date
that accept or return
* year, month, date, hours, minutes, and seconds values, the
* following representations are used:
*
  • *
  • A year y is represented by the integer
    * y.


    Конечно, в Java 1.1 метод getYear() и ему подобные были устаревшими в пользу java.util.Calendar, который до сих пор есть это странное примечание об устаревании:

    Код: Выделить всё

     int    getYear()
    Deprecated. As of JDK version 1.1, replaced by Calendar.get(Calendar.YEAR) - 1900.
    
    setYear(int year)
    Deprecated. As of JDK version 1.1, replaced by Calendar.set(Calendar.YEAR, year + 1900).
    
    И, конечно, Месяц основан на 0, но мы все это знаем (хотя можно подумать, что они удалили эту проблему из Календаря - не сделали):

    Код: Выделить всё

     * A month is represented by an integer from 0 to 11; 0 is January,
    *     1 is February, and so forth; thus 11 is December.
    
    Я проверил следующие вопросы:

    Почему Date.getYear в Java () возвращает 111 вместо 2011?

    Почему API даты Java (java.util.Date, .Calendar) такой беспорядок?

    Мой вопрос:


    Что могли придумать первоначальные создатели Java .util.Date надеялся получить выгоду от хранения данных «года», вычитая из него 1900? Особенно, если он в основном хранится как длинный.
Как таковой:

Код: Выделить всё

private transient long fastTime;

@Deprecated
public int getYear() {
return normalize().getYear() - 1900;
}

@Deprecated
public void setYear(int year) {
getCalendarDate().setNormalizedYear(year + 1900);
}

private final BaseCalendar.Date getCalendarDate() {
if (cdate == null) {
BaseCalendar cal = getCalendarSystem(fastTime);
....
  • Почему 1900?


Подробнее здесь: https://stackoverflow.com/questions/262 ... -year-1900
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»