Класс 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. Синтаксис пользовательского идентификатора часового пояса: Часы должны быть в диапазоне от 0 до 23, а Минуты/Секунды — в диапазоне от 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
Формат не зависит от локали, а цифры должны быть взяты из блока Basic Latin стандарта 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" может означать американское "Central Standard Time" или китайское "China Standard Time"), и платформа 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 летнее время. |
Подробное описание полей
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 не используется переход на летнее время). В противном случае возвращается название стандартного времени. При поиске названия часового пояса используется стандартный путь поиска Locale для ResourceBundle, определяемый указанной 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/TimeZone.html