Spec-Zone .ru
спецификации, руководства, описания, API
Содержание | Предыдущий | Следующий | Индекс

21.3 Класс java.util.Date

Класс Date обеспечивает системно-независимую абстракцию дат и времена, к точности миллисекунды. Даты могут быть созданы с года, месяца, дата (день месяца), час, минута, и вторые; те шесть компонентов и день недели, может быть извлечен; и даты могут быть сравнены и преобразованы в читаемую строку.

public class Date {
	public Date();
	public Date(long time);
	public Date(int year, int month, int date);
	public Date(int year, int month, int date,
			int hours, int minutes);
	public Date(int year, int month, int date,
			int hours, int minutes, int seconds);
	public Date(String s) throws IllegalArgumentException;
	public String toString();
	public boolean equals(Object obj);
	public int hashCode();
	public int getYear();
	public void setYear(int year);
	public int getMonth();
	public void setMonth(int month);
	public int getDate();
	public void setDate(int date);
	public int getDay();
	public int getHours();
	public void setHours(int hours);
	public int getMinutes();
	public void setMinutes(int minutes);
	public int getSeconds();
	public void setSeconds(int seconds);
	public long getTime();
	public void setTime(long time);
	public boolean before(Date when);
	public boolean after(Date when);
	public String toLocaleString();
	public String toGMTString();
	public int getTimezoneOffset();
	public static long UTC(int year, int month, int date,
			int hours, int minutes, int seconds);
	public static long parse(String s)
		throws IllegalArgumentException;
}
Примеры:

В то время как Date класс предназначается, чтобы отразить UTC (Всемирное координированное время), это, возможно, не делает так точно, в зависимости от среды узла системы Java. Почти все современные операционные системы предполагают что 1 день = = 86400 секунд во всех случаях. В UTC, однако, об однажды каждый год или два есть дополнительная секунда, названная "вторым прыжком." Второй прыжок всегда добавляется как в последнюю секунду дня, и почти всегда 31 декабря или 30 июня. Например, последний из 1995 года был 61 секунда длиной благодаря добавленному второму прыжку.

Большинство компьютерных часов в настоящий момент не достаточно точно, чтобы быть в состоянии отразить различие с секундой прыжка. Некоторые компьютерные стандарты определяются с точки зрения GMT (Среднее время по Гринвичу), которое эквивалентно UT (Всемирное время). GMT является "гражданским" именем для стандарта; UT является "научным" именем для того же самого стандарта. Различие между UTC и UT - то, что UTC основан на атомарных часах, и UT основан на астрономических наблюдениях, который для всех практических целей является незримо прекрасными волосами, чтобы разделить. Поскольку вращение земли не универсально - оно замедляется и убыстряется в сложном дорожном UT, не всегда течет однородно. Секунды прыжка представляются как необходимый в UTC, чтобы сохранить UTC в течение 0.9 секунд после UT1, который является версией UT с определенными примененными исправлениями. Также есть другие системы времени и даты; например, масштаб времени, используемый GPS (основанная на спутнике Система глобального позиционирования), синхронизируется с UTC, но не корректируется в течение секунд прыжка. Интересный источник дополнительной информации является американской Военно-морской Обсерваторией, особенно Управлением Времени в:

http://tycho.usno.navy.mil
и их определения "Систем Времени" в:

http://tycho.usno.navy.mil/systime.html
Во всех методах класса Date это принимает или возвращает год, месяц, день месяца, часов, минут, и значений секунд, следующие представления используются:

Во всех случаях параметры, данные методам в этих целях, не должны находиться в пределах обозначенных диапазонов; например, дата может быть определена как январь 32 и будет интерпретироваться как значение 1 февраля.

21.3.1 public Date()

Этот конструктор инициализирует недавно создаваемый Date возразите так, чтобы это представило момент времени, когда это создавалось, измеренное к самой близкой миллисекунде.

21.3.2 public Date(long time)

Этот конструктор инициализирует недавно создаваемый Date возразите так, чтобы это представило момент времени, которое является time миллисекунды после стандартного норматива времени, известного как "эпоха," а именно, GMT 0:00:00 1 января 1970. См. также метод currentTimeMillis (§20.18.6) класса System.

21.3.3 public Date(int year, int month, int date)

Этот конструктор инициализирует недавно создаваемый Date возразите так, чтобы это представило полночь в начале дня, определенного year, month, и date параметры, в зоне местного времени. Таким образом это имеет тот же самый эффект как вызов конструктора (§21.3.5):

Date(year, month, date, 0, 0, 0) 

21.3.4 public Date(int year, int month, int date,
int hours, int minutes)

Этот конструктор инициализирует недавно создаваемый Date возразите так, чтобы это представило момент в начале минуты, определенной year, month, date, hours, и minutes параметры, в зоне местного времени. Таким образом это имеет тот же самый эффект как вызов конструктора (§21.3.5):

Date(year, month, date, hours, minutes, 0)

21.3.5 public Date(int year, int month, int date,
int hours, int minutes, int seconds)

Этот конструктор инициализирует недавно создаваемый Date возразите так, чтобы это представило момент в начале второго, определенного year, month, date, hours, minutes, и seconds параметры, в зоне местного времени.

21.3.6 public Date(String s)
throws IllegalArgumentException

Этот конструктор инициализирует недавно создаваемый Date возразите так, чтобы это представило дату и время, указанное строкой s, который интерпретируется как будто parse метод (§21.3.31).

21.3.7 public String toString()

Это Date объект преобразовывается в a String из формы:

"dow mon dd hh:mm:ss zzz yyyy"
где:

См. также методы toLocaleString (§21.3.27) и toGMTString (§21.3.28).

Переопределения toString метод Object (§20.1.2).

21.3.8 public boolean equals(Object obj)

Результат true если и только если параметр не null и a Date объект, который представляет тот же самый момент времени, к миллисекунде, как это Date объект. Таким образом два Date объекты равны если и только если getTime метод (§21.3.23) возвращает то же самое long значение от обоих.

Переопределения equals метод Object (§20.1.3).

21.3.9 public int hashCode()

Результатом является монопольное ИЛИ двух половин примитива long значение, возвращенное getTime метод (§21.3.23). Таким образом, хэш-код является значением выражения:

(int)(this.getTime()^(this.getTime()>>>32))
Переопределения hashCode метод Object (§20.1.4).

21.3.10 public int getYear()

Возвращенное значение является результатом вычитания 1900 с года, который содержит или начинается с момента, вовремя представленного этим Date объект, как интерпретирующийся в зоне местного времени.

21.3.11 public void setYear(int year)

Это Date объект изменяется так, чтобы он представил момент времени в течение указанного года, с месяцем, датой, час, минута, и второй то же самое как прежде, как интерпретирующийся в зоне местного времени. (Конечно, если дата была 29 февраля, например, и год устанавливается в невисокосный год, то новая дата будет обработана, как будто это было 1 марта.)

21.3.12 public int getMonth()

Возвращенное значение является числом (0 через 11) представление месяца, который содержит или начинается с момента, вовремя представленного этим Date объект, как интерпретирующийся в зоне местного времени.

21.3.13 public void setMonth(int month)

Это Date объект изменяется так, чтобы он представил момент времени в течение указанного месяца, с годом, датой, час, минута, и второй то же самое как прежде, как интерпретирующийся в зоне местного времени. Если дата была 31 октября, например, и месяц устанавливается до июня, то новая дата будет обработана, как будто это было 1 июля, потому что у июня есть только 30 дней.

21.3.14 public int getDate()

Возвращенное значение является числом (1 через 31) представление дня месяца, который содержит или начинается с момента, вовремя представленного этим Date объект, как интерпретирующийся в зоне местного времени.

21.3.15 public void setDate(int date)

Это Date объект изменяется так, чтобы он представил момент времени в течение указанного дня после месяца, с годом, месяцем, часом, минутой, и второй то же самое как прежде, как интерпретирующийся в зоне местного времени. Если дата была 30 апреля, например, и дата назначается к 31, то это будет обработано, как будто это было 1 мая, потому что у апреля есть только 30 дней.

21.3.16 public int getDay()

Возвращенное значение (0 = В воскресенье, 1 = В понедельник, 2 = Во вторник, 3 = В среду, 4 = В четверг, 5 = В пятницу, 6 = В субботу), представляет день недели, которая содержит или начинается с момента, вовремя представленного этим Date объект, как интерпретирующийся в зоне местного времени.

21.3.17 public int getHours()

Возвращенное значение является числом (0 через 23) представление часа в течение дня, который содержит или начинается с момента, вовремя представленного этим Date объект, как интерпретирующийся в зоне местного времени.

21.3.18 public void setHours(int hours)

Это Date объект изменяется так, чтобы он представил момент времени в течение указанного часа после дня, с годом, месяцем, датой, минута, и второй то же самое как прежде, как интерпретирующийся в зоне местного времени.

21.3.19 public int getMinutes()

Возвращенное значение является числом (0 через 59) представление минуты в течение часа, который содержит или начинается с момента, вовремя представленного этим Date объект, как интерпретирующийся в зоне местного времени.

21.3.20 public void setMinutes(int minutes)

Это Date объект изменяется так, чтобы он представил момент времени в течение указанной минуты после часа, с годом, месяцем, датой, час, и второй то же самое как прежде, как интерпретирующийся в зоне местного времени.

21.3.21 public int getSeconds()

Возвращенное значение является числом (0 через 61) представление второго в течение минуты, которая содержит или начинается с момента, вовремя представленного этим Date объект, как интерпретирующийся в зоне местного времени.

21.3.22 public void setSeconds(int seconds)

Это Date объект изменяется так, чтобы он представил момент времени в течение указанной секунды после минуты, с годом, месяцем, датой, час, и минута то же самое как прежде, как интерпретирующийся в зоне местного времени.

21.3.23 public long getTime()

Этот метод возвращает время, представленное этим Date объект, представленный как расстояние, измеренное в миллисекундах, того времени от эпохи (GMT 0:00:00 1 января 1970).

21.3.24 public void setTime(long time)

Это Date объект изменяется так, чтобы он представил момент времени, который является time миллисекунды после эпохи (GMT 0:00:00 1 января 1970).

21.3.25 public boolean before(Date when)

Результат true если и только если момент представляется этим Date объект строго ранее чем момент, представленный when.

21.3.26 public boolean after(Date when)

Результат true если и только если момент представляется этим Date объект строго позже чем момент, представленный when.

21.3.27 public String toLocaleString()

Это Date объект преобразовывается в a String из зависящей от реализации формы. Общее намерение состоит в том, что форма должна быть знакомой пользователю приложения Java, везде, где это, может оказаться, работает. Намерение сопоставимо с тем из %c формат, поддерживаемый strftime функция ISO C.

См. также методы toString (§21.3.7) и toGMTString (§21.3.28).

21.3.28 public String toGMTString()

Это Date объект преобразовывается в a String из длины 23 или 24 из формы:

"d mon yyyy hh:mm:ss GMT"
где:

Результат не зависит от зоны местного времени.

См. также методы toString (§21.3.7) и toLocaleString (§21.3.27).

21.3.29 public int getTimezoneOffset()

Этот метод возвращает смещение, измеренное в минутах, для зоны местного времени относительно UTC, который является соответствующим в течение времени, представленного этим Date объект.

Например, в Массачусетсе, пять часовых поясов к западу от Гринвича:

new Date(96, 1, 14).getTimezoneOffset() returns 300
потому что 14 февраля 1996, стандартное время (Восточное Стандартное Время) используется, который смещается пять часов до UTC; но:

new Date(96, 5, 1).getTimezoneOffset() returns 240
потому что 1 мая 1996, летнее время (Восточное Летнее время) используется, который смещается только четыре часа до UTC.

Этот метод приводит к тому же самому результату, как будто это вычислило:


(this.getTime() - UTC(this.getYear(),
							this.getMonth(),
							this.getDate(),
							this.getHours(),
							this.getMinutes(),
							this.getSeconds())) / (60 * 1000)

21.3.30 public static long UTC(int year, int month, int date,
int hours, int minutes, int seconds)

Параметры интерпретируются как год, месяц, день месяца, час дня, минуты в течение часа, и вторые в течение минуты, точно что касается Date конструктор шести параметров (§21.3.5), за исключением того, что параметры интерпретируются относительно UTC, а не к зоне местного времени. Указанное время возвращается представленное как расстояние, измеренное в миллисекундах, того времени от эпохи (GMT 0:00:00 1 января 1970).

21.3.31 public static long parse(String s)
throws IllegalArgumentException

Попытка предпринимается, чтобы интерпретировать строку s как представление даты и время. Если попытка успешна, указанное время возвращается представленное как расстояние, измеренное в миллисекундах, того времени от эпохи (GMT 0:00:00 1 января 1970). Если попытка перестала работать, IllegalArgumentException бросается.

Строка s обрабатывается слева направо, ища данные интереса.

Любой материал в s это в пределах символов круглой скобки ASCII ( и ) игнорируется. Круглые скобки могут быть вложены. Иначе, единственные символы, разрешенные в пределах s эти символы ASCII:


abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789,+-:/
и пробельные символы (§20.5.19).

Последовательная последовательность десятичных цифр обрабатывается как десятичное число:

Последовательная последовательность букв расценивается как слово и обрабатывается следующим образом:

Однажды вся строка s был отсканирован, это преобразовывается в результат времени одним из двух способов. Если смещение часового пояса или часового пояса было распознано, то год, месяц, день месяца, часа, минуты, и второй интерпретируются в UTC (§21.3.30), и затем смещение часового пояса применяется. Иначе, год, месяц, день месяца, часа, минуты, и второй интерпретируются в зоне местного времени.


Содержание | Предыдущий | Следующий | Индекс

Спецификация языка Java (HTML, сгенерированный Блинчиком "сюзет" Pelouch 24 февраля 1998)
Авторское право © Sun Microsystems, Inc 1996 года. Все права защищены
Пожалуйста, отправьте любые комментарии или исправления к doug.kramer@sun.com

free hit counter