Spec-Zone .ru
спецификации, руководства, описания, API
|
java.util.Date
Date
обеспечивает системно-независимую абстракцию дат и времена, к точности миллисекунды. Даты могут быть созданы с года, месяца, дата (день месяца), час, минута, и вторые; те шесть компонентов и день недели, может быть извлечен; и даты могут быть сравнены и преобразованы в читаемую строку. public classПримеры:Date
{ publicDate
(); publicDate
(long time); publicDate
(int year, int month, int date); publicDate
(int year, int month, int date, int hours, int minutes); publicDate
(int year, int month, int date, int hours, int minutes, int seconds); publicDate
(String s) throws IllegalArgumentException; public StringtoString
(); public booleanequals
(Object obj); public inthashCode
(); public intgetYear
(); public voidsetYear
(int year); public intgetMonth
(); public voidsetMonth
(int month); public intgetDate
(); public voidsetDate
(int date); public intgetDay
(); public intgetHours
(); public voidsetHours
(int hours); public intgetMinutes
(); public voidsetMinutes
(int minutes); public intgetSeconds
(); public voidsetSeconds
(int seconds); public longgetTime
(); public voidsetTime
(long time); public booleanbefore
(Date when); public booleanafter
(Date when); public StringtoLocaleString
(); public StringtoGMTString
(); public intgetTimezoneOffset
(); public static longUTC
(int year, int month, int date, int hours, int minutes, int seconds); public static longparse
(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
это принимает или возвращает год, месяц, день месяца, часов, минут, и значений секунд, следующие представления используются:
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"где:
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
(§21.3.31). Если информация о часовом поясе не доступна, то 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"где:
1
через 31
), как одна или две десятичных цифры.
Jan
, Feb
, Mar
, Apr
, May
, Jun
, Jul
, Aug
, Sep
, Oct
, Nov
, Dec
).
00
через 23
), как две десятичных цифры.
00
через 59
), как две десятичных цифры.
00
через 61
), как две десятичных цифры.
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).
Последовательная последовательность десятичных цифр обрабатывается как десятичное число:
+
или -
и год был уже распознан, тогда число является смещением часового пояса. Если число - меньше чем 24, это - смещение, измеренное в часах. Иначе, это расценивается как смещение в минутах, выраженных в 24-часовом формате времени без пунктуации. Предыдущее +
означает смещение на восток и предыдущее -
означает движущееся на запад смещение. Смещения часового пояса всегда относительно UTC (Гринвич). Таким образом, например, -5
появление в строке означало бы "пять часов к западу от Гринвича" и +0430
означал бы "четыре часа и тридцать минут к востоку от Гринвича." Разрешается для строки определить GMT
, UT
, или UTC
избыточно например, GMT-5
или utc+0430
.
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 (§21.3.30), и затем смещение часового пояса применяется. Иначе, год, месяц, день месяца, часа, минуты, и второй интерпретируются в зоне местного времени.
Содержание | Предыдущий | Следующий | Индекс
Спецификация языка Java (HTML, сгенерированный Блинчиком "сюзет" Pelouch 24 февраля 1998)
Авторское право © Sun Microsystems, Inc 1996 года. Все права защищены
Пожалуйста, отправьте любые комментарии или исправления к doug.kramer@sun.com