Класс TimeZone
- Все реализованные интерфейсы:
-
Serializable,Cloneable
- Прямые известные подклассы:
SimpleTimeZone
public abstract class TimeZone extends Object implements Serializable, Cloneable
TimeZone представляет смещение часового пояса и также определяет летнее время. Обычно вы получаете часовой пояс с помощью getDefault, который создаёт объект TimeZone, основанный на часовом поясе, в котором выполняется программа. Например, для программы, выполняющейся в Японии, getDefault создаёт объект TimeZone на основе японского стандартного времени.
Вы также можете получить часовой пояс с помощью getTimeZone вместе с идентификатором часового пояса. Например, идентификатор часового пояса для тихоокеанского времени США — "America/Los_Angeles". Таким образом, вы можете получить объект часового пояса Тихоокеанского времени США с помощью:
TimeZone tz = TimeZone.getTimeZone("America/Los_Angeles");
Вы можете использовать метод getAvailableIDs для перебора всех поддерживаемых идентификаторов часовых поясов. Затем вы можете выбрать поддерживаемый идентификатор, чтобы получить TimeZone. Если желаемый часовой пояс не представлен одним из поддерживаемых идентификаторов, то можно указать пользовательский идентификатор часового пояса для создания объекта TimeZone. Синтаксис пользовательского идентификатора часового пояса: Часы должны быть в диапазоне от 0 до 23, а Минуты — от 00 до 59. Например, "GMT+10" и "GMT+0010" означают соответственно на 10 часов и 10 минут вперёд от GMT.CustomID:GMTSign Hours:MinutesGMTSign Hours MinutesGMTSign Hours Sign: one of+ -Hours: Digit Digit Digit Minutes: 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".NormalizedCustomID:GMTSign TwoDigitHours:Minutes Sign: one of+ -TwoDigitHours: Digit Digit Minutes: Digit Digit Digit: one of0 1 2 3 4 5 6 7 8 9
Идентификаторы часовых поясов из трёх букв
Для совместимости с JDK 1.1.x поддерживаются и некоторые другие идентификаторы часовых поясов из трёх букв (например, "PST", "CTT", "AST"). Однако их использование устарело, потому что одно и то же сокращение часто используется для нескольких часовых поясов (например, "CST" может означать как американское "Центральное стандартное время", так и китайское "Стандартное время"), и платформа Java может распознать только один из них.- С:
- 1.1
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
LONG |
Спецификатор стиля для getDisplayName(), указывающий полное имя, например "Pacific Standard Time". |
static final int |
SHORT |
Спецификатор стиля для getDisplayName(), указывающий короткое имя, например "PST". |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
TimeZone() |
Единственный конструктор. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Object |
clone() |
Создаёт копию этого TimeZone. |
static String[] |
getAvailableIDs() |
Получает все доступные поддерживаемые идентификаторы. |
static String[] |
getAvailableIDs |
Получает доступные идентификаторы в соответствии с заданным смещением часового пояса в миллисекундах. |
static TimeZone |
getDefault() |
Получает значение по умолчанию для TimeZone виртуальной машины Java. |
final String |
getDisplayName() |
Возвращает полное стандартное имя этого TimeZone, подходящее для отображения пользователю в локале по умолчанию. |
final String |
getDisplayName |
Возвращает имя в указанном style этого TimeZone, подходящее для отображения пользователю в локале по умолчанию. |
String |
getDisplayName |
Возвращает имя в указанном style этого TimeZone, подходящее для отображения пользователю в указанном
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() , указывающий полное имя, например, "Pacific Standard Time".- С момента:
- 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 для января. -
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, метод возвращает значение сырого смещения на текущую дату. Например, в Гонолулу его сырое смещение изменилось с GMT-10:30 на GMT-10:00 в 1947 году, и этот метод всегда возвращает -36000000 миллисекунд (т.е. -10 часов).
- Возвращает:
- количество времени сырого смещения в миллисекундах для добавления к UTC.
- См. также:
getID
public String getID()
- Возвращает:
- идентификатор этого часового пояса.
setID
public void setID(String ID)
- Параметры:
-
ID- новый идентификатор часового пояса.
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)
style этого TimeZone , подходящее для отображения пользователю в локале по умолчанию. Если указанное 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)
style этого TimeZone , подходящее для отображения пользователю в указанном
locale. Если указанное daylight является true, возвращается имя летнего времени (даже если этот TimeZone не соблюдает летнее время). В противном случае возвращается имя стандартного времени. При поиске имени часового пояса используется путь поиска по умолчанию для Locale , полученный из указанного locale. (Не выполняется поиск по по умолчанию Locale). Если имя часового пояса найдено в любой Locale пути поиска, включая Locale.ROOT, возвращается это имя. В противном случае возвращается строка в нормализованном формате ID настраиваемого часового пояса.
- Параметры:
-
daylight-true, указывающее имя летнего времени, илиfalse, указывающее имя стандартного времени -
style- либоLONG, либоSHORT -
locale- локаль, в которой нужно предоставить имя отображения. - Возвращает:
- читаемое человеком имя этого часового пояса в данной локали.
- Исключения:
-
IllegalArgumentException- еслиstyleнекорректно. -
NullPointerException- еслиlocaleявляется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, в противном случае.
getTimeZone
public static TimeZone getTimeZone(String ID)
- Параметры:
-
ID- идентификатор часового пояса, например, аббревиатура "PST", полное название "America/Los_Angeles" или пользовательский идентификатор "GMT-8:00". Обратите внимание, что поддержка аббревиатур предназначена только для совместимости с JDK 1.1.x, и следует использовать полные имена. - Возвращает:
- указанный часовой пояс или часовой пояс GMT, если заданный идентификатор не может быть распознан.
getTimeZone
public static TimeZone getTimeZone(ZoneId zoneId)
- Параметры:
-
zoneId-ZoneId, из которого извлекается идентификатор часового пояса - Возвращает:
- указанный часовой пояс или часовой пояс GMT, если заданный идентификатор не может быть распознан.
- Исключения:
-
NullPointerException- еслиzoneIdявляетсяnull - С:
- 1.8
toZoneId
public ZoneId toZoneId()
TimeZone в ZoneId.- Возвращает:
ZoneId, представляющий тот же часовой пояс, что и этотTimeZone- С:
- 1.8
getAvailableIDs
public static String[] getAvailableIDs(int rawOffset)
- Параметры:
-
rawOffset- заданное смещение часового пояса от GMT в миллисекундах. - Возвращает:
- массив идентификаторов, где часовой пояс для данного идентификатора имеет указанное смещение от GMT. Например, "America/Phoenix" и "America/Denver" оба имеют GMT-07:00, но различаются по поведению летнего времени.
- См. также:
getAvailableIDs
public static String[] getAvailableIDs()
- Возвращает:
- массив идентификаторов.
getDefault
public static TimeZone getDefault()
TimeZone виртуальной машины Java. Если кэшированное значение по умолчанию для TimeZone доступно, возвращается его копия. В противном случае метод выполняет следующие действия для определения часового пояса по умолчанию. - Если доступно, использует значение свойства
user.timezoneв качестве идентификатора часового пояса по умолчанию. - Определяет идентификатор платформенного часового пояса. Источник платформенного часового пояса и соответствия идентификатора может отличаться в зависимости от реализации.
- Использует
GMTв качестве последней меры, если заданный или обнаруженный идентификатор часового пояса неизвестен.
Созданный из идентификатора часовой пояс по умолчанию кэшируется, и его копия возвращается. Значение свойства user.timezone устанавливается в идентификатор по возвращении.
- Возвращает:
- значения по умолчанию
TimeZone - См. также:
setDefault
public static void setDefault(TimeZone zone)
TimeZone возвращаемое методом getDefault. zone кэшируется. Если zone равно null, кэшированное значение по умолчанию для TimeZone очищается. Этот метод не изменяет значение свойства user.timezone.- Параметры:
-
zone- новый часовой пояс по умолчанию или null - Исключения:
-
SecurityException- если менеджер безопасностиcheckPermissionзапрещаетPropertyPermission("user.timezone", "write") - См. также:
hasSameRules
public boolean hasSameRules(TimeZone other)
- Параметры:
-
other- объект часового пояса для сравнения - Возвращает:
- true, если другой часовой пояс не null и такой же, как этот, за исключением возможного ID
- С:
- 1.2
clone
public Object clone()
TimeZone.- Переопределяет:
-
cloneв классеObject - Возвращает:
- клонированный объект
TimeZone - См. также:
© 1993, 2021, 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/17/docs/api/java.base/java/util/TimeZone.html