Класс Date представляет определенный момент вовремя, с точностью миллисекунды.
До JDK 1.1, класса Date имел две дополнительных функции. Это позволило интерпретацию дат как год, месяц, день, час, минута, и вторые значения. Это также позволило форматирование и парсинг строк даты. К сожалению, API для этих функций не поддавался интернационализации. С JDK 1.1, Calendar класс должен использоваться, чтобы преобразовать между датами и полями времени и DateFormat класс должен использоваться, чтобы отформатировать и проанализировать строки даты. Соответствующие методы в Date осуждаются.
Хотя Date класс предназначается, чтобы отразить всемирное координированное время (UTC), это, возможно, не делает так точно, в зависимости от среды узла виртуальной машины Java. Почти все современные операционные системы предполагают что 1 день = 24 × 60 × 60 = 86400 секунд во всех случаях. В UTC, однако, об однажды каждый год или два есть дополнительная секунда, названная "вторым прыжком." Второй прыжок всегда добавляется как в последнюю секунду дня, и всегда 31 декабря или 30 июня. Например, последний из 1995 года был 61 секунда длиной благодаря добавленному второму прыжку. Большинство компьютерных часов не достаточно точно, чтобы быть в состоянии отразить различие с секундой прыжка.
Некоторые компьютерные стандарты определяются с точки зрения Среднего времени по Гринвичу (GMT), который эквивалентен всемирному времени (UT). GMT является "гражданским" именем для стандарта; UT является "научным" именем для того же самого стандарта. Различие между UTC и UT - то, что UTC основан на атомарных часах, и UT основан на астрономических наблюдениях, который для всех практических целей является незримо прекрасными волосами, чтобы разделить. Поскольку вращение земли не универсально (оно замедляется и убыстряется сложными способами), UT не всегда течет однородно. Секунды прыжка представляются как необходимый в UTC, чтобы сохранить UTC в течение 0.9 секунд после UT1, который является версией UT с определенными примененными исправлениями. Также есть другие системы времени и даты; например, масштаб времени, используемый основанной на спутнике системой глобального позиционирования (GPS), синхронизируется с UTC, но не корректируется в течение секунд прыжка. Интересным источником дополнительной информации являются США. Военно-морская Обсерватория, особенно Управление Времени в:
Во всех методах класса Date это принимает или возвращает год, месяц, дату, часы, минуты, и значения секунд, следующие представления используются:
Год y представляется целым числом y- 1900.
Месяц представляется целым числом от 0 до 11; 0, 1 января февраль, и т.д; таким образом 11 декабрь.
Дата (день месяца) представляется целым числом от 1 до 31 обычным способом.
Час представляется целым числом от 0 до 23. Таким образом час с полуночи до 1:00 является часом 0, и час с полудня до 13:00 является часом 12.
Минута представляется целым числом от 0 до 59 обычным способом.
Секунда представляется целым числом от 0 до 61; значения 60 и 61 происходят только в течение секунд прыжка и даже тогда только в реализациях Java, которые фактически отслеживают секунды прыжка правильно. Из-за способа, которым в настоящий момент представляются секунды прыжка, крайне маловероятно, что две секунды прыжка произойдут в ту же самую минуту, но эта спецификация следует за датой и соглашениями времени для ISO C.
Во всех случаях параметры, данные методам в этих целях, не должны находиться в пределах обозначенных диапазонов; например, дата может быть определена как январь 32 и интерпретируется как значение 1 февраля.
Выделяет a Date возразите и инициализирует это, чтобы представить конкретное количество миллисекунд со стандартного норматива времени, известного как "эпоха", а именно, 1 января 1970, GMT 0:00:00.
Выделяет a Date возразите и инициализирует это, чтобы представить конкретное количество миллисекунд со стандартного норматива времени, известного как "эпоха", а именно, 1 января 1970, GMT 0:00:00.
@Deprecated
public Date(int year,
int month,
int date)
Осуждаемый.С версии 1.1 JDK, замененной Calendar.set(year + 1900, month, date) или GregorianCalendar(year + 1900, month, date).
Выделяет a Date возразите и инициализирует это так, чтобы это представило полночь, местное время, в начале дня, определенного year, month, и date параметры.
@Deprecated
public Date(int year,
int month,
int date,
int hrs,
int min)
Осуждаемый.С версии 1.1 JDK, замененной Calendar.set(year + 1900, month, date, hrs, min) или GregorianCalendar(year + 1900, month, date, hrs, min).
Выделяет a Date возразите и инициализирует это так, чтобы это представило момент в начале минуты, определенной year, month, date, hrs, и min параметры, в зоне местного времени.
Выделяет a Date возразите и инициализирует это так, чтобы это представило момент в начале второго, определенного year, month, date, hrs, min, и sec параметры, в зоне местного времени.
Осуждаемый.С версии 1.1 JDK, замененной DateFormat.parse(String s).
Выделяет a Date возразите и инициализирует это так, чтобы это представило дату и время, указанное строкой s, который интерпретируется как будто parse(java.lang.String) метод.
@Deprecated
public static long UTC(int year,
int month,
int date,
int hrs,
int min,
int sec)
Осуждаемый.С версии 1.1 JDK, замененной Calendar.set(year + 1900, month, date, hrs, min, sec) или GregorianCalendar(year + 1900, month, date, hrs, min, sec), использование UTC TimeZone, сопровождаемый Calendar.getTime().getTime().
Определяет дату и время, основанное на параметрах. Параметры интерпретируются как год, месяц, день месяца, час дня, минуты в течение часа, и вторые в течение минуты, точно что касается конструктора Date с шестью параметрами, за исключением того, что параметры интерпретируются относительно UTC, а не к зоне местного времени. Указанное время возвращается представленное как расстояние, измеренное в миллисекундах, того времени от эпохи (GMT 0:00:00 1 января 1970).
Параметры:
year - год минус 1900.
month - месяц между 0-11.
date - день месяца между 1-31.
hrs - часы между 0-23.
min - минуты между 0-59.
sec - секунды между 0-59.
Возвраты:
число миллисекунд с 1 января 1970, GMT 0:00:00 для даты и время определяется параметрами.
Осуждаемый.С версии 1.1 JDK, замененной DateFormat.parse(String s).
Попытки интерпретировать строку s как представление даты и время. Если попытка успешна, указанное время возвращается представленное как расстояние, измеренное в миллисекундах, того времени от эпохи (GMT 0:00:00 1 января 1970). Если попытка перестала работать, IllegalArgumentException бросается.
Это принимает много синтаксисов; в частности это распознает стандартный синтаксис даты IETF: "Суббота, 12 августа 1995 GMT 13:30:00". Это также понимает континентальные американские сокращения часового пояса, но для общего использования, смещение часового пояса должно использоваться: "Суббота, 12 августа 1995 13:30:00 GMT+0430" (4 часа, 30 минут к западу от Гринвичского меридиана). Если никакой часовой пояс не определяется, зона местного времени принимается. GMT и UTC считают эквивалентными.
Строка s обрабатывается слева направо, ища данные интереса. Любой материал в s, который является в пределах символов круглой скобки ASCII ( и ), игнорируется. Круглые скобки могут быть вложены. Иначе, единственные символы, разрешенные в пределах s, являются этими символами ASCII:
Последовательная последовательность десятичных цифр обрабатывается как десятичное число:
Если числу предшествуют + или -, и год был уже распознан, то число является смещением часового пояса. Если число - меньше чем 24, это - смещение, измеренное в часах. Иначе, это расценивается как смещение в минутах, выраженных в 24-часовом формате времени без пунктуации. Предыдущий - означает движущееся на запад смещение. Смещения часового пояса всегда относительно UTC (Гринвич). Таким образом, например, -5, происходящий в строке, означал бы "пять часов к западу от Гринвича", и +0430 будет означать "четыре часа и тридцать минут к востоку от Гринвича." Разрешается для строки определить GMT, UT, или UTC избыточно например, GMT-5 или utc+0430.
Число расценивается как число года, если одно из следующих условий является истиной:
Число равно или больше чем 70 и сопровождаемый пространством, запятой, наклонной чертой, или концом строки
Число - меньше чем 70, и и месяц и день месяца были уже распознаны
Если распознанное число года - меньше чем 100, оно интерпретируется как сокращенный год относительно столетия, которого даты в течение 80 лет прежде и спустя 19 лет после времени, когда класс Даты инициализируется. После корректировки числа года 1900 вычитается из этого. Например, если текущий год является 1999 тогда, годы в диапазоне 19 - 99, как предполагается, означают 1919 - 1999, в то время как годы от 0 до 18, как предполагается, означают 2000 - 2018. Отметьте, что это немного отличается от интерпретации лет меньше чем 100, который используется в SimpleDateFormat.
Если число сопровождается двоеточием, оно расценивается как час, если час не был уже распознан, когда оно расценивается как минута.
Если число сопровождается наклонной чертой, оно расценивается как месяц (оно уменьшается на 1, чтобы произвести число в диапазоне 0 к 11), если месяц не был уже распознан, когда оно расценивается как день месяца.
Если число сопровождается пробелом, запятой, дефисом, или концом строки, то, если час был распознан, но не минута, это расценивается как минута; иначе, если минута была распознана, но не секунда, она расценивается как секунда; иначе, это расценивается как день месяца.
Последовательная последовательность букв расценивается как слово и обрабатывается следующим образом:
Слово, которое соответствует AM, игнорируя регистр, игнорируется (но сбои синтаксического анализа, если час не был распознан или является меньше чем 1 или больше чем 12).
Слово, которое соответствует PM, игнорируя регистр, добавляет 12 к часу (но сбои синтаксического анализа, если час не был распознан или является меньше чем 1 или больше чем 12).
Любое слово, которое соответствует любой префикс SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, или SATURDAY, игнорируя регистр, игнорируется. Например, sat, Friday, TUE, и Thurs игнорируются.
Иначе, любое слово, которое соответствует любой префикс JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, или DECEMBER, игнорируя регистр, и рассматривая их в порядке, данном здесь, распознается как определение месяца и преобразовывается в число (0 к 11). Например, aug, Sept, april, и NOV распознаются как месяцы. Так Ma, который распознается как MARCH, не MAY.
Любое слово, которое соответствует GMT, UT, или UTC, игнорируя регистр, обрабатывается как обращающийся к UTC.
Любое слово, которое соответствует EST, CST, MST, или PST, игнорируя регистр, распознается как обращающийся к часовому поясу в Северной Америке, которая является пять, шесть, семь, или восемь часов к западу от Гринвича, соответственно. Любое слово, которое соответствует EDT, CDT, MDT, или PDT, игнорируя регистр, распознается как обращающийся к тому же самому часовому поясу, соответственно, в течение летнего времени.
Однажды вся строка был отсканирован s, это преобразовывается в результат времени одним из двух способов. Если смещение часового пояса или часового пояса было распознано, то год, месяц, день месяца, часа, минуты, и второй интерпретируются в UTC, и затем смещение часового пояса применяется. Иначе, год, месяц, день месяца, часа, минуты, и второй интерпретируются в зоне местного времени.
Параметры:
s - строка, которая будет проанализирована как дата.
Возвраты:
число миллисекунд с 1 января 1970, GMT 0:00:00 представляется строковым параметром.
Осуждаемый.С версии 1.1 JDK, замененной Calendar.get(Calendar.YEAR) - 1900.
Возвращает значение, которое является результатом вычитания 1900 с года, который содержит или начинается с момента, вовремя представленного этим Date объект, как интерпретирующийся в зоне местного времени.
Осуждаемый.С версии 1.1 JDK, замененной Calendar.set(Calendar.YEAR, year + 1900).
Устанавливает год этого объекта Date быть указанным значением плюс 1900. Это Date объект изменяется так, чтобы он представил момент времени в течение указанного года, с месяцем, датой, час, минута, и второй то же самое как прежде, как интерпретирующийся в зоне местного времени. (Конечно, если дата была 29 февраля, например, и год устанавливается в невисокосный год, то новая дата будет обработана, как будто это было 1 марта.)
Осуждаемый.С версии 1.1 JDK, замененной Calendar.get(Calendar.MONTH).
Возвращает число, представляющее месяц, который содержит или начинается с момента, вовремя представленного этим объектом Date. Возвращенное значение между 0 и 11, со значением 0 представление января.
Осуждаемый.С версии 1.1 JDK, замененной Calendar.set(Calendar.MONTH, int month).
Устанавливает месяц этой даты к указанному значению. Этот объект Date изменяется так, чтобы он представил момент времени в течение указанного месяца, с годом, датой, час, минута, и второй то же самое как прежде, как интерпретирующийся в зоне местного времени. Если дата была 31 октября, например, и месяц устанавливается до июня, то новая дата будет обработана, как будто это было 1 июля, потому что у июня есть только 30 дней.
Осуждаемый.С версии 1.1 JDK, замененной Calendar.get(Calendar.DAY_OF_MONTH).
Возвращает день месяца, представленного этим объектом Date. Возвращенное значение между 1 и 31 представление дня месяца, который содержит или начинается с момента, вовремя представленного этим объектом Date, как интерпретирующийся в зоне местного времени.
Осуждаемый.С версии 1.1 JDK, замененной Calendar.set(Calendar.DAY_OF_MONTH, int date).
Устанавливает день месяца этого объекта Date к указанному значению. Этот объект Date изменяется так, чтобы он представил момент времени в течение указанного дня после месяца, с годом, месяцем, часом, минутой, и второй то же самое как прежде, как интерпретирующийся в зоне местного времени. Если дата была 30 апреля, например, и дата назначается к 31, то это будет обработано, как будто это было 1 мая, потому что у апреля есть только 30 дней.
Осуждаемый.С версии 1.1 JDK, замененной Calendar.get(Calendar.DAY_OF_WEEK).
Возвращает день недели, представленной этой датой. Возвращенное значение (0 = в воскресенье, 1 = в понедельник, 2 = во вторник, 3 = в среду, 4 = в четверг, 5 = в пятницу, 6 = в субботу) представляет день недели, которая содержит или начинается с момента, вовремя представленного этим объектом Date, как интерпретирующийся в зоне местного времени.
Осуждаемый.С версии 1.1 JDK, замененной Calendar.get(Calendar.HOUR_OF_DAY).
Возвращает час, представленный этим объектом Date. Возвращенное значение является числом (0 через 23) представление часа в течение дня, который содержит или начинается с момента, вовремя представленного этим объектом Date, как интерпретирующийся в зоне местного времени.
Осуждаемый.С версии 1.1 JDK, замененной Calendar.set(Calendar.HOUR_OF_DAY, int hours).
Устанавливает час этого объекта Date к указанному значению. Этот объект Date изменяется так, чтобы он представил момент времени в течение указанного часа после дня, с годом, месяцем, датой, минута, и второй то же самое как прежде, как интерпретирующийся в зоне местного времени.
Осуждаемый.С версии 1.1 JDK, замененной Calendar.set(Calendar.MINUTE, int minutes).
Устанавливает минуты этого объекта Date к указанному значению. Этот объект Date изменяется так, чтобы он представил момент времени в течение указанной минуты после часа, с годом, месяцем, датой, час, и второй то же самое как прежде, как интерпретирующийся в зоне местного времени.
Осуждаемый.С версии 1.1 JDK, замененной Calendar.get(Calendar.SECOND).
Возвращает число секунд мимо минуты, представленной этой датой. Возвращенное значение между 0 и 61. Значения 60 и 61 может только произойти на тех виртуальных машинах Java, которые принимают секунды прыжка во внимание.
Возвраты:
число секунд мимо минуты представляется этой датой.
Осуждаемый.С версии 1.1 JDK, замененной Calendar.set(Calendar.SECOND, int seconds).
Устанавливает секунды этого Date к указанному значению. Этот объект Date изменяется так, чтобы он представил момент времени в течение указанной секунды после минуты, с годом, месяцем, датой, час, и минута то же самое как прежде, как интерпретирующийся в зоне местного времени.
Сравнивает две даты равенства. Результат true если и только если параметр не null и a Date объект, который представляет тот же самый момент времени, к миллисекунде, как этот объект.
Таким образом, два Date объекты равны если и только если getTime метод возвращает то же самое long значение для обоих.
значение 0 если Дата параметра равна этой Дате; значение меньше чем 0 если эта Дата перед параметром Даты; и значение, больше чем 0 если эта Дата после параметра Даты.
Возвращает значение хэш-кода для этого объекта. Результатом является монопольное ИЛИ двух половин примитивного значения long, возвращенного getTime() метод. Таким образом, хэш-код является значением выражения:
Преобразовывает это Date возразите против a String из формы:
dow mon dd hh:mm:ss zzz yyyy
где:
dow является днем недели (Sun, Mon, Tue, Wed, Thu, Fri, Sat).
mon является месяцем (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec).
dd является днем месяца (01 через 31) как две десятичных цифры.
hh является часом дня (00 через 23) как две десятичных цифры.
mm является минутой в течение часа (00 через 59) как две десятичных цифры.
В течение минуты ss является вторым (00 через 61, как две десятичных цифры.
zzz является часовым поясом (и может отразить летнее время). Стандартные сокращения часового пояса включают распознанных методом parse. Если информация о часовом поясе не доступна, то zzz пуст - то есть, это не состоит ни из каких символов вообще.
Осуждаемый.С версии 1.1 JDK, замененной DateFormat.format(Date date).
Создает строковое представление этого объекта Date в зависящей от реализации форме. Намерение состоит в том, что форма должна быть знакомой пользователю приложения Java, везде, где это, может оказаться, работает. Намерение сопоставимо с тем из"%c"формат, поддерживаемый strftime() функция ISO C.
Возвраты:
строковое представление этой даты, используя соглашения локали.
Возвращает смещение, измеренное в минутах, для зоны местного времени относительно UTC, который является соответствующим в течение времени, представленного этим Date объект.
Например, в Массачусетсе, пять часовых поясов к западу от Гринвича:
new Date(96, 1, 14).getTimezoneOffset() returns 300
потому что 14 февраля 1996, стандартное время (Восточное Стандартное Время) используется, который смещается пять часов до UTC; но:
new Date(96, 5, 1).getTimezoneOffset() returns 240
потому что 1 июня 1996, летнее время (Восточное Летнее время) используется, который смещается только четыре часа до UTC.
Этот метод приводит к тому же самому результату, как будто это вычислило: