Класс TimeZone
- Все реализуемые интерфейсы:
Serializable, Cloneable
- Прямые известные подклассы:
SimpleTimeZone
public abstract class TimeZone extends Object implements Serializable, Cloneable
TimeZone представляет смещение часового пояса, а также определяет переходы на летнее время. Обычно объект TimeZone получают с помощью getDefault, который создает объект TimeZone на основе часового пояса, в котором выполняется программа. Например, для программы, выполняемой в Японии, getDefault создает объект TimeZone на основе японского стандартного времени.
Также объект TimeZone можно получить с помощью getTimeZone, указав идентификатор часового пояса. Например, идентификатор часового пояса тихоокеанского времени США — "America/Los_Angeles". Поэтому объект TimeZone для тихоокеанского времени США можно получить следующим образом:
С помощью методаTimeZone tz = TimeZone.getTimeZone("America/Los_Angeles");
getAvailableIDs можно перебрать все поддерживаемые идентификаторы часовых поясов. Затем можно выбрать поддерживаемый идентификатор, чтобы получить объект TimeZone. Если нужный часовой пояс не представлен одним из поддерживаемых идентификаторов, можно указать пользовательский идентификатор часового пояса для создания объекта TimeZone. Синтаксис пользовательского идентификатора часового пояса: Значение Hours должно находиться в диапазоне от 0 до 23, а значения Minutes/Seconds — в диапазоне от 00 до 59. Например, "GMT+10" и "GMT+0010" означают соответственно опережение времени GMT на десять часов и на десять часов десять минут.CustomID:GMTSign Hours:Minutes:SecondsGMTSign Hours:MinutesGMTSign Hours MinutesGMTSign Hours Sign: one of+ -Hours: Digit Digit Digit Minutes: Digit Digit Seconds: Digit Digit Digit: one of0 1 2 3 4 5 6 7 8 9
Формат не зависит от локали, а цифры должны принадлежать базовому латинскому блоку стандарта Unicode. Для пользовательского идентификатора часового пояса нельзя задать расписание переходов на летнее время. Если указанная строка не соответствует синтаксису, используется "GMT".
При создании объекта TimeZone указанный пользовательский идентификатор часового пояса нормализуется в соответствии со следующим синтаксисом:
Например, TimeZone.getTimeZone("GMT-8").getID() возвращает "GMT-08:00". Часть ColonSeconds появляется, только если значение секунд ненулевое.NormalizedCustomID:GMTSign TwoDigitHours:Minutes [ColonSeconds] Sign: one of+ -TwoDigitHours: Digit Digit Minutes: Digit Digit ColonSeconds::Digit Digit Digit: one of0 1 2 3 4 5 6 7 8 9
Трехбуквенные идентификаторы часовых поясов
Для совместимости с JDK 1.1.x поддерживаются также некоторые другие трехбуквенные идентификаторы часовых поясов (например, "PST", "CTT", "AST"). Однако их использование устарело, поскольку одно и то же сокращение часто используется для нескольких часовых поясов (например, "CST" может обозначать американское «центральное стандартное время» и китайское «стандартное время»), и платформа Java может распознать только один из них. Полный список устаревших трехбуквенных идентификаторов часовых поясов и соответствующих им обозначений приведен в разделеZoneId.SHORT_IDS.- Начиная с версии:
- 1.1
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
LONG |
Указывает стиль для getDisplayName(), обозначающий длинное название, например "Pacific Standard Time". |
static final int |
SHORT |
Указывает стиль для getDisplayName(), обозначающий короткое название, например "PST". |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
TimeZone() |
Единственный конструктор. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static Stream |
availableIDs() |
Возвращает поток поддерживаемых доступных идентификаторов. |
static Stream |
availableIDs |
Получает доступные идентификаторы в соответствии с заданным смещением часового пояса в миллисекундах. |
Object |
clone() |
Создает копию этого объекта TimeZone. |
static String[] |
getAvailableIDs() |
Возвращает массив поддерживаемых доступных идентификаторов. |
static String[] |
getAvailableIDs |
Получает доступные идентификаторы в соответствии с заданным смещением часового пояса в миллисекундах. |
static TimeZone |
getDefault() |
Получает часовой пояс TimeZone виртуальной машины Java. |
final String |
getDisplayName() |
Возвращает длинное название стандартного времени для этого объекта TimeZone, подходящее для отображения пользователю в локали по умолчанию. |
final String |
getDisplayName |
Возвращает название этого объекта TimeZone в указанном style, подходящее для отображения пользователю в локали по умолчанию. |
String |
getDisplayName |
Возвращает название этого объекта TimeZone в указанном style, подходящее для отображения пользователю в заданной
locale. |
final String |
getDisplayName |
Возвращает длинное название стандартного времени для этого объекта TimeZone, подходящее для отображения пользователю в заданной locale. |
int |
getDSTSavings() |
Возвращает величину времени, которую нужно прибавить к местному стандартному времени, чтобы получить местное время по настенным часам. |
String |
getID() |
Получает идентификатор этого часового пояса. |
abstract int |
getOffset |
Получает смещение часового пояса для текущей даты с учетом перехода на летнее время. |
int |
getOffset |
Возвращает смещение этого часового пояса относительно UTC на указанную дату. |
abstract int |
getRawOffset() |
Возвращает величину времени в миллисекундах, которую нужно прибавить к UTC, чтобы получить стандартное время в этом часовом поясе. |
static TimeZone |
getTimeZone |
Получает TimeZone для указанного идентификатора. |
static TimeZone |
getTimeZone |
Получает TimeZone для указанного zoneId. |
boolean |
hasSameRules |
Возвращает true, если правила и смещение этой зоны совпадают с правилами и смещением другой зоны. |
abstract boolean |
inDaylightTime |
Проверяет, действует ли для указанного date летнее время в этом часовом поясе. |
boolean |
observesDaylightTime() |
Возвращает true, если для этого TimeZone сейчас действует летнее время или если в будущем произойдет переход со стандартного времени на летнее. |
static void |
setDefault |
Устанавливает TimeZone, возвращаемый методом getDefault. |
void |
setID |
Устанавливает идентификатор часового пояса. |
abstract void |
setRawOffset |
Устанавливает базовое смещение часового пояса относительно GMT. |
ZoneId |
toZoneId() |
Преобразует этот объект TimeZone в ZoneId. |
abstract boolean |
useDaylightTime() |
Проверяет, используется ли в этом TimeZone летнее время. |
Методы, объявленные в классе Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
equals |
Указывает, равен ли другой объект этому объекту. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API может быть удален в будущей версии. Финализация объявлена устаревшей и будет удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Переводит текущий поток в состояние ожидания до его пробуждения, обычно в результате вызова notify или interrupt. |
final void |
wait |
Переводит текущий поток в состояние ожидания до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного времени. |
final void |
wait |
Переводит текущий поток в состояние ожидания до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного времени. |
Подробное описание полей
SHORT
public static final int SHORT
getDisplayName(), указывающий короткое название, например «PST».- Начиная с:
- 1.2
- См. также:
LONG
public static final int LONG
getDisplayName(), указывающий полное название, например «Тихоокеанское стандартное время».- Начиная с:
- 1.2
- См. также:
Подробное описание конструкторов
TimeZone
public TimeZone()
Подробное описание методов
getOffset
public abstract int getOffset(int era, int year, int month, int day, int dayOfWeek, int milliseconds)
Этот метод возвращает исторически корректное смещение, если базовый подкласс реализации TimeZone поддерживает историческое расписание переходов на летнее время и изменения смещения GMT.
- Параметры:
-
era— эра указанной даты. -
year— год указанной даты. -
month— месяц указанной даты. Нумерация месяцев начинается с 0: например, 0 соответствует январю. -
day— день месяца указанной даты. -
dayOfWeek— день недели указанной даты. -
milliseconds— количество миллисекунд в сутках по стандартному местному времени. - Возвращает:
- смещение в миллисекундах, которое нужно прибавить к GMT, чтобы получить местное время.
- См. также:
getOffset
public int getOffset(long date)
Этот метод возвращает исторически корректное значение смещения, если базовый подкласс реализации TimeZone поддерживает историческое расписание переходов на летнее время и изменения смещения GMT.
- Параметры:
-
date— дата, заданная в миллисекундах с 1 января 1970 года, 00:00:00 GMT - Возвращает:
- время в миллисекундах, которое нужно прибавить к UTC, чтобы получить местное время.
- Начиная с:
- 1.4
- См. также:
setRawOffset
public abstract void setRawOffset(int offsetMillis)
Если базовый подкласс реализации TimeZone поддерживает исторические изменения смещения GMT, указанное смещение GMT устанавливается как последнее смещение GMT, а разница с известным последним значением смещения GMT используется для корректировки всех исторических значений смещения GMT.
- Параметры:
-
offsetMillis— заданное базовое смещение часового пояса относительно GMT.
getRawOffset
public abstract int getRawOffset()
Если базовый подкласс реализации TimeZone поддерживает исторические изменения смещения GMT, метод возвращает значение базового смещения для текущей даты. Например, в Гонолулу базовое смещение в 1947 году изменилось с GMT-10:30 на GMT-10:00, и этот метод всегда возвращает -36000000 миллисекунд (то есть -10 часов).
- Возвращает:
- время базового смещения в миллисекундах, которое нужно прибавить к UTC.
- См. также:
getID
public String getID()
- Возвращает:
- идентификатор этого часового пояса.
setID
public void setID(String ID)
- Требования к реализации:
- Реализация по умолчанию выбрасывает
NullPointerException, еслиIDимеет значениеnull - Параметры:
-
ID— новый идентификатор часового пояса. - Выбрасывает:
-
NullPointerException— этот метод может выброситьNullPointerException, еслиIDимеет значениеnull
getDisplayName
public final String getDisplayName()
TimeZone, подходящее для отображения пользователю в локали по умолчанию. Этот метод эквивалентен:
getDisplayName(false, LONG, Locale.getDefault(Locale.Category.DISPLAY));
- Возвращает:
- понятное человеку название этого часового пояса в локали по умолчанию.
- Начиная с:
- 1.2
- См. также:
getDisplayName
public final String getDisplayName(Locale locale)
TimeZone, подходящее для отображения пользователю в указанной locale. Этот метод эквивалентен:
getDisplayName(false, LONG, locale);
- Параметры:
-
locale— локаль, в которой нужно предоставить отображаемое название. - Возвращает:
- понятное человеку название этого часового пояса в указанной локали.
- Выбрасывает:
-
NullPointerException— еслиlocaleимеет значениеnull. - Начиная с:
- 1.2
- См. также:
getDisplayName
public final String getDisplayName(boolean daylight, int style)
TimeZone в указанном style, подходящее для отображения пользователю в локали по умолчанию. Если указанный daylight имеет значение true, возвращается название летнего времени (даже если в этом TimeZone не используется летнее время). В противном случае возвращается название стандартного времени. Этот метод эквивалентен:
getDisplayName(daylight, style, Locale.getDefault(Locale.Category.DISPLAY));
- Параметры:
-
daylight—trueдля указания названия летнего времени илиfalseдля указания названия стандартного времени -
style— либоLONG, либоSHORT - Возвращает:
- понятное человеку название этого часового пояса в локали по умолчанию.
- Выбрасывает:
-
IllegalArgumentException— еслиstyleнедопустим. - Начиная с:
- 1.2
- См. также:
getDisplayName
public String getDisplayName(boolean daylight, int style, Locale locale)
TimeZone в указанном style, подходящее для отображения пользователю в указанной
locale. Если указанный daylight имеет значение true, возвращается название летнего времени (даже если в этом TimeZone не используется летнее время). В противном случае возвращается название стандартного времени. При поиске названия часового пояса используется путь поиска ResourceBundle по умолчанию для Locale, полученный на основе указанной locale. (Поиск с использованием резервной Locale не выполняется.) Если название часового пояса найдено в любой Locale пути поиска, включая Locale.ROOT, оно возвращается. В противном случае возвращается строка в нормализованном формате пользовательского идентификатора.
- Требования к реализации:
- Реализация по умолчанию выбрасывает
IllegalArgumentException, еслиstyleнедопустим, илиNullPointerException, еслиIDимеет значениеnull. - Параметры:
-
daylight—trueдля указания названия летнего времени илиfalseдля указания названия стандартного времени -
style— либоLONG, либоSHORT -
locale— локаль, в которой нужно предоставить отображаемое название. - Возвращает:
- понятное человеку название этого часового пояса в указанной локали.
- Выбрасывает:
-
IllegalArgumentException— этот метод может выброситьIllegalArgumentException, еслиstyleнедопустим. -
NullPointerException— этот метод может выброситьNullPointerException, еслиIDимеет значениеnull - Начиная с:
- 1.2
- См. также:
getDSTSavings
public int getDSTSavings()
Реализация по умолчанию возвращает 3600000 миллисекунд (то есть один час), если вызов useDaylightTime() возвращает true. В противном случае возвращается 0 (ноль).
Если базовый подкласс реализации TimeZone поддерживает исторические и будущие изменения расписания переходов на летнее время, этот метод возвращает величину перехода на летнее время для последнего известного правила, которое может использоваться для прогнозирования будущего.
Если требуется узнать величину перехода на летнее время для определенной временной метки, создайте Calendar с этим
TimeZone и временной меткой и вызовите Calendar.get(Calendar.DST_OFFSET).
- Возвращает:
- величину перехода на летнее время в миллисекундах
- Начиная с:
- 1.4
- См. также:
useDaylightTime
public abstract boolean useDaylightTime()
TimeZone летнее время. Если базовый подкласс реализации TimeZone поддерживает исторические и будущие изменения расписания переходов на летнее время, этот метод учитывает последнее известное правило, которое может использоваться для прогнозирования будущего, и оно может отличаться от текущего правила. Если необходимо учитывать также текущее правило, рассмотрите возможность вызова observesDaylightTime().
- Возвращает:
-
true, если в этомTimeZoneиспользуется летнее время, иfalseв противном случае. - См. также:
observesDaylightTime
public boolean observesDaylightTime()
true, если для этого TimeZone сейчас действует летнее время или если в будущем произойдет переход со стандартного времени на летнее. Реализация по умолчанию возвращает true, если useDaylightTime() или inDaylightTime(new Date()) возвращает true.
- Возвращает:
-
true, если для этогоTimeZoneсейчас действует летнее время или если в будущем произойдет переход со стандартного времени на летнее; в противном случае —false. - Начиная с:
- 1.7
- См. также:
inDaylightTime
public abstract boolean inDaylightTime(Date date)
date в этом часовом поясе.- Параметры:
-
date— указанная дата. - Возвращает:
-
true, если для указанной даты действует летнее время, иfalseв противном случае. - Выбрасывает:
-
NullPointerException— этот метод может выброситьNullPointerException, еслиdateимеет значениеnull
getTimeZone
public static TimeZone getTimeZone(String ID)
TimeZone для указанного идентификатора.- Параметры:
-
ID— идентификаторTimeZone: сокращение, например «PST», полное название, например «America/Los_Angeles», или пользовательский идентификатор, например «GMT-8:00». Обратите внимание, что поддержка сокращений предназначена только для совместимости с JDK 1.1.x; следует использовать полные названия. - Возвращает:
- указанный
TimeZoneили часовой пояс GMT, если указанный идентификатор не удалось распознать. - Выбрасывает:
-
NullPointerException— еслиIDимеет значениеnull
getTimeZone
public static TimeZone getTimeZone(ZoneId zoneId)
TimeZone для указанного zoneId.- Параметры:
-
zoneId—ZoneId, на основе которого определяется идентификатор часового пояса - Возвращает:
- указанный
TimeZoneили часовой пояс GMT, если указанный идентификатор не удалось распознать. - Выбрасывает:
-
NullPointerException— еслиzoneIdимеет значениеnull - Начиная с:
- 1.8
toZoneId
public ZoneId toZoneId()
TimeZone в ZoneId.- Возвращает:
ZoneId, представляющий тот же часовой пояс, что и этотTimeZone- Начиная с:
- 1.8
getAvailableIDs
public static String[] getAvailableIDs(int rawOffset)
- Примечание к API:
- Рассмотрите возможность использования
availableIDs(int), который возвращает поток доступных идентификаторов часовых поясов с указанным смещением. - Параметры:
-
rawOffset— указанное смещение часового пояса относительно GMT в миллисекундах. - Возвращает:
- массив идентификаторов часовых поясов с указанным смещением относительно GMT. Например, «America/Phoenix» и «America/Denver» имеют смещение GMT-07:00, но отличаются правилами перехода на летнее время.
- См. также:
getAvailableIDs
public static String[] getAvailableIDs()
- Примечание к API:
- Рассмотрите возможность использования
availableIDs(), который возвращает поток доступных идентификаторов часовых поясов. - Возвращает:
- массив поддерживаемых доступных идентификаторов
- См. также:
availableIDs
public static Stream<String> availableIDs(int rawOffset)
- Примечание по реализации:
- В отличие от
getAvailableIDs(int), этот метод не создает копию массива идентификаторовTimeZone. - Параметры:
-
rawOffset— указанное смещение часового пояса относительно GMT в миллисекундах. - Возвращает:
- поток идентификаторов часовых поясов с указанным смещением относительно GMT. Например, «America/Phoenix» и «America/Denver» имеют смещение GMT-07:00, но отличаются правилами перехода на летнее время.
- Начиная с:
- 25
- См. также:
availableIDs
public static Stream<String> availableIDs()
- Примечание по реализации:
- В отличие от
getAvailableIDs(), этот метод не создает копию массива идентификаторовTimeZone. - Возвращает:
- поток поддерживаемых доступных идентификаторов
- Начиная с:
- 25
- См. также:
getDefault
public static TimeZone getDefault()
TimeZone виртуальной машины Java. Если доступен кэшированный часовой пояс TimeZone по умолчанию, возвращается его клон. В противном случае метод выполняет следующие действия для определения часового пояса по умолчанию. - Использует значение свойства
user.timezoneв качестве идентификатора часового пояса по умолчанию, если оно задано. - Определяет идентификатор часового пояса платформы. Источник часового пояса платформы и сопоставление идентификаторов могут различаться в зависимости от реализации.
- В крайнем случае использует
GMT, если указанный или определенный идентификатор часового пояса неизвестен.
Часовой пояс TimeZone, созданный на основе идентификатора, кэшируется, и возвращается его клон. При возврате значение свойства user.timezone устанавливается в этот идентификатор.
- Возвращает:
- часовой пояс
TimeZone - См. также:
setDefault
public static void setDefault(TimeZone zone)
TimeZone, который возвращает метод getDefault. Значение zone кэшируется. Если zone равно null, кэшированный часовой пояс TimeZone по умолчанию очищается. Этот метод не изменяет значение свойства user.timezone.- Параметры:
-
zone— новый часовой поясTimeZoneпо умолчанию или null - См. также:
hasSameRules
public boolean hasSameRules(TimeZone other)
- Параметры:
-
other— объектTimeZoneдля сравнения - Возвращает:
- true, если другой часовой пояс не равен null и совпадает с этим, за возможным исключением идентификатора
- Начиная с:
- 1.2
clone
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.