Класс 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. Синтаксис пользовательского идентификатора часового пояса:
CustomID:
        GMT Sign Hours : Minutes
        GMT Sign Hours Minutes
        GMT Sign Hours
Sign: one of
        + -
Hours:
        Digit
        Digit Digit
Minutes:
        Digit Digit
Digit: one of
        0 1 2 3 4 5 6 7 8 9
Hours должно быть от 0 до 23, а Minutes — от 00 до 59. Например, "GMT+10" и "GMT+0010" соответственно означают десять часов и десять минут вперед по Гринвичу.

Формат независим от локали, а цифры должны быть взяты из блока Basic Latin стандарта Unicode. Расписание перехода на летнее время указать с помощью пользовательского идентификатора часового пояса нельзя. Если указанная строка не соответствует синтаксису, используется "GMT".

При создании TimeZone, указанный пользовательский идентификатор часового пояса нормализуется в следующем синтаксисе:

NormalizedCustomID:
        GMT Sign TwoDigitHours : Minutes
Sign: one of
        + -
TwoDigitHours:
        Digit Digit
Minutes:
        Digit Digit
Digit: one of
        0 1 2 3 4 5 6 7 8 9
Например, TimeZone.getTimeZone("GMT-8").getID() возвращает "GMT-08:00".

Идентификаторы часовых поясов из трех букв

Для совместимости с JDK 1.1.x поддерживаются и некоторые другие идентификаторы часовых поясов из трех букв (например, "PST", "CTT", "AST"). Однако их использование устарело, потому что одно и то же сокращение часто используется для нескольких часовых поясов (например, "CST" может обозначать как "Центральное стандартное время" США, так и "Стандартное время Китая"), и платформа Java может распознать только один из них.
С:
1.1
См. также:
Calendar, GregorianCalendar, SimpleTimeZone, Сериализованная форма

Поля

Модификатор и тип Поле Описание
static int LONG

Спецификатор стиля для getDisplayName(), указывающий полное имя, например, "Pacific Standard Time".

static int SHORT

Спецификатор стиля для getDisplayName(), указывающий короткое имя, например, "PST".

Конструкторы

Конструктор Описание
TimeZone()

Единственный конструктор.

Методы

Модификатор и тип Метод Описание
Object clone()

Создает копию этого TimeZone.

static String[] getAvailableIDs()

Получает все доступные поддерживаемые идентификаторы.

static String[] getAvailableIDs​(int rawOffset)

Получает доступные идентификаторы в соответствии с заданным смещением часового пояса в миллисекундах.

static TimeZone getDefault()

Получает по умолчанию TimeZone виртуальной машины Java.

String getDisplayName()

Возвращает длинное имя стандартного времени этого TimeZone, подходящее для отображения пользователю в локальной локали.

String getDisplayName​(boolean daylight, int style)

Возвращает имя в указанной style этого TimeZone, подходящее для отображения пользователю в локальной локали.

String getDisplayName​(boolean daylight, int style, Locale locale)

Возвращает имя в указанной style этого TimeZone, подходящее для отображения пользователю в указанной locale.

String getDisplayName​(Locale locale)

Возвращает длинное имя стандартного времени этого TimeZone, подходящее для отображения пользователю в указанной locale.

int getDSTSavings()

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

String getID()

Получает идентификатор этого часового пояса.

abstract int getOffset​(int era, int year, int month, int day, int dayOfWeek, int milliseconds)

Получает смещение часового пояса по текущей дате, модифицированное в случае летнего времени.

int getOffset​(long date)

Возвращает смещение этого часового пояса от UTC в указанную дату.

abstract int getRawOffset()

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

static TimeZone getTimeZone​(String ID)

Получает TimeZone для данного идентификатора.

static TimeZone getTimeZone​(ZoneId zoneId)

Получает TimeZone для данного zoneId.

boolean hasSameRules​(TimeZone other)

Возвращает true, если этот пояс имеет тот же принцип и смещение, что и другой пояс.

abstract boolean inDaylightTime​(Date date)

Запрашивает, находится ли данное date в летнем времени в этом часовом поясе.

boolean observesDaylightTime()

Возвращает true , если этот TimeZone в настоящее время в летнем времени, или если переход от стандартного времени к летнему времени произойдет в будущем.

static void setDefault​(TimeZone zone)

Устанавливает TimeZone, которое возвращается методом getDefault.

void setID​(String ID)

Устанавливает идентификатор часового пояса.

abstract void setRawOffset​(int offsetMillis)

Устанавливает смещение базового часового пояса по Гринвичу.

ZoneId toZoneId()

Преобразует этот объект TimeZone в ZoneId.

abstract boolean useDaylightTime()

Запрашивает, использует ли этот TimeZone летнее время.

Методы, объявленные в классе java.lang.Object

equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Поля

SHORT

public static final int SHORT

Спецификатор стиля для getDisplayName(), указывающий короткое имя, например, "PST".

С:
1.2
См. также:
LONG, Постоянные значения полей

LONG

public static final int LONG

Спецификатор стиля для getDisplayName(), указывающий полное имя, например, "Pacific Standard Time".

С:
1.2
См. также:
SHORT, Постоянные значения полей

Конструкторы

TimeZone

public TimeZone()

Единственный конструктор. (Для вызова конструкторами подклассов, обычно неявным).

Методы

getOffset

public abstract int getOffset(int era,
                              int year,
                              int month,
                              int day,
                              int dayOfWeek,
                              int milliseconds)

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

Этот метод возвращает исторически корректное смещение, если подкласс реализации TimeZone поддерживает исторические расписания перехода на летнее время и изменения смещения GMT.

Параметры:
era - эра заданной даты.
year - год заданной даты.
month - месяц заданной даты. Месяц задаётся нумерацией с нуля. Например, 0 для января.
day - день в месяце заданной даты.
dayOfWeek - день недели заданной даты.
milliseconds - миллисекунды в дне в стандартном местном времени.
Возвращает:
смещение в миллисекундах, которое нужно добавить к GMT, чтобы получить местное время.
См. также:
Calendar.ZONE_OFFSET, Calendar.DST_OFFSET

getOffset

public int getOffset(long date)

Возвращает смещение этого часового пояса от UTC в указанную дату. Если в указанную дату действует летнее время, значение смещения корректируется на величину перехода на летнее время.

Этот метод возвращает исторически корректное смещение, если подкласс реализации TimeZone поддерживает исторические расписания перехода на летнее время и изменения смещения GMT.

Параметры:
date - дата, представленная в миллисекундах с 1 января 1970 года 00:00:00 GMT
Возвращает:
величина времени в миллисекундах, которую нужно добавить к UTC, чтобы получить местное время.
С:
1.4
См. также:
Calendar.ZONE_OFFSET, Calendar.DST_OFFSET

setRawOffset

public abstract void setRawOffset(int offsetMillis)

Устанавливает базовое смещение часового пояса относительно GMT. Это смещение, которое нужно добавить к UTC, чтобы получить местное время.

Если подкласс реализации TimeZone поддерживает исторические изменения смещения GMT, указанное смещение GMT устанавливается как последнее известное смещение GMT, а разница от известного последнего значения смещения GMT используется для корректировки всех исторических значений смещения GMT.

Параметры:
offsetMillis - заданное базовое смещение часового пояса относительно GMT.

getRawOffset

public abstract int getRawOffset()

Возвращает количество времени в миллисекундах, которое нужно добавить к UTC, чтобы получить стандартное время в этом часовом поясе. Поскольку это значение не зависит от перехода на летнее время, оно называется сырым смещением.

Если подкласс реализации TimeZone поддерживает исторические изменения смещения GMT, метод возвращает сырое смещение значения текущей даты. Например, в Гонолулу сырое смещение менялось с GMT-10:30 на GMT-10:00 в 1947 году, и этот метод всегда возвращает -36000000 миллисекунд (то есть -10 часов).

Возвращает:
количество сырого смещения времени в миллисекундах, которое нужно добавить к UTC.
См. также:
Calendar.ZONE_OFFSET

getID

public String getID()

Получает идентификатор этого часового пояса.

Возвращает:
идентификатор этого часового пояса.

setID

public void setID(String ID)

Устанавливает идентификатор часового пояса. Это не изменяет никакие другие данные в объекте часового пояса.

Параметры:
ID - новый идентификатор часового пояса.

getDisplayName

public final String getDisplayName()

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

Этот метод эквивалентен:

getDisplayName(false, LONG,
               Locale.getDefault(Locale.Category.DISPLAY))
Возвращает:
читаемое человеком имя этого часового пояса в локале по умолчанию.
С:
1.2
См. также:
getDisplayName(boolean, int, Locale), Locale.getDefault(Locale.Category), Locale.Category

getDisplayName

public final String getDisplayName(Locale locale)

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

Этот метод эквивалентен:

getDisplayName(false, LONG, locale)
Параметры:
locale - локал, в котором нужно предоставить имя для отображения.
Возвращает:
читаемое человеком имя этого часового пояса в данном локале.
ИИсключения:
NullPointerException - если locale равен null.
С:
1.2
См. также:
getDisplayName(boolean, int, Locale)

getDisplayName

public final String getDisplayName(boolean daylight,
                                   int style)

Возвращает имя в указанном формате этого часового пояса, подходящее для отображения пользователю в локале по умолчанию. Если указанный формат является true, возвращается имя летнего времени (даже если этот часовой пояс не соблюдает летнее время). В противном случае возвращается имя стандартного времени.

Этот метод эквивалентен:

getDisplayName(daylight, style,
               Locale.getDefault(Locale.Category.DISPLAY))
Параметры:
daylight - true для указания имени летнего времени, или false для указания имени стандартного времени
style - либо LONG, либо SHORT
Возвращает:
читаемое человеком имя этого часового пояса в локале по умолчанию.
ИИсключения:
IllegalArgumentException - если style недопустимо.
С:
1.2
См. также:
getDisplayName(boolean, int, Locale), Locale.getDefault(Locale.Category), Locale.Category, DateFormatSymbols.getZoneStrings()

getDisplayName

public String getDisplayName(boolean daylight,
                             int style,
                             Locale locale)

Возвращает имя в указанном формате этого часового пояса, подходящее для отображения пользователю в указанном локале. Если указанный формат является true, возвращается имя летнего времени (даже если этот часовой пояс не соблюдает летнее время). В противном случае возвращается имя стандартного времени.

При поиске имени часового пояса используется стандартный Locale поиск ResourceBundle пути, полученного из указанного locale. (Не выполняется поиск по Locale) Если имя часового пояса найдено в любом Locale пути поиска, включая Locale.ROOT, то возвращается это имя. В противном случае возвращается строка в формате нормализованного пользовательского идентификатора.

Параметры:
daylight - true для указания имени летнего времени, или false для указания имени стандартного времени
style - либо LONG, либо SHORT
locale - локал, в котором нужно предоставить имя для отображения.
Возвращает:
читаемое человеком имя этого часового пояса в данном локале.
ИИсключения:
IllegalArgumentException - если style недопустимо.
NullPointerException - если locale равен null.
С:
1.2
См. также:
DateFormatSymbols.getZoneStrings()

getDSTSavings

public int getDSTSavings()

Возвращает величину времени, которая должна быть добавлена к местному стандартному времени, чтобы получить местное время по часам.

Реализация по умолчанию возвращает 3600000 миллисекунд (то есть один час), если вызов useDaylightTime() возвращает true. В противном случае возвращается 0 (ноль).

Если подкласс реализации TimeZone поддерживает исторические и будущие изменения расписания перехода на летнее время, этот метод возвращает величину времени экономии в рамках последнего известного правила перехода на летнее время, которая может быть будущим прогнозом.

Если требуется величина экономии времени в любой заданной точке времени, создайте Calendar с этим TimeZone и отметкой времени и вызовите Calendar.get(Calendar.DST_OFFSET).

Возвращает:
величина экономии времени в миллисекундах
С:
1.4
См. также:
inDaylightTime(Date), getOffset(long), getOffset(int,int,int,int,int,int), Calendar.ZONE_OFFSET

useDaylightTime

public abstract boolean useDaylightTime()

Определяет, использует ли этот часовой пояс летнее время.

Если подкласс реализации TimeZone поддерживает исторические и будущие изменения расписания перехода на летнее время, этот метод ссылается на последнее известное правило перехода на летнее время, которое может быть будущим прогнозом, и может не совпадать с текущим правилом. Рассмотрите возможность вызова observesDaylightTime(), если также необходимо учитывать текущее правило.

Возвращает:
true если этот часовой пояс использует летнее время, false, в противном случае.
См. также:
inDaylightTime(Date), Calendar.DST_OFFSET

observesDaylightTime

public boolean observesDaylightTime()

Возвращает true если этот часовой пояс в настоящее время использует летнее время или переход со стандартного времени на летнее время произойдёт в будущем.

Реализация по умолчанию возвращает true, если useDaylightTime() или inDaylightTime(new Date()) возвращает true.

Возвращает:
true если это TimeZone в настоящее время в летнем времени, или если переход от стандартного времени к летнему времени произойдёт в будущем; false в противном случае.
С:
1.7
См. также:
useDaylightTime(), inDaylightTime(Date), Calendar.DST_OFFSET

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()

Преобразует этот объект часового пояса в объект ZoneId.

Возвращает:
объект ZoneId, представляющий тот же часовой пояс, что и этот объект часового пояса.
С:
1.8

getAvailableIDs

public static String[] getAvailableIDs(int rawOffset)

Получает доступные идентификаторы в соответствии со смещением часового пояса в миллисекундах.

Параметры:
rawOffset - заданное смещение часового пояса от GMT в миллисекундах.
Возвращает:
массив идентификаторов, где часовой пояс для каждого идентификатора имеет указанное смещение от GMT. Например, "America/Phoenix" и "America/Denver" оба имеют GMT-07:00, но отличаются по поведению во время летнего времени.
См. также:
getRawOffset()

getAvailableIDs

public static String[] getAvailableIDs()

Получает все поддерживаемые доступные идентификаторы.

Возвращает:
массив идентификаторов.

getDefault

public static TimeZone getDefault()

Получает значение по умолчанию для TimeZone Java виртуальной машины. Если кешированное значение по умолчанию TimeZone доступно, возвращается его копия. В противном случае метод выполняет следующие действия для определения часового пояса по умолчанию.

  • Использует значение свойства user.timezone в качестве идентификатора часового пояса по умолчанию, если оно доступно.
  • Определяет идентификатор часового пояса платформы. Источник платформенного часового пояса и сопоставления идентификаторов может различаться в зависимости от реализации.
  • Использует GMT в качестве последней попытки, если заданный или обнаруженный идентификатор часового пояса неизвестен.

Созданный из идентификатора часовой пояс по умолчанию кешируется, и возвращается его копия. Значение свойства user.timezone устанавливается в значение идентификатора при возврате.

Возвращает:
значение по умолчанию для TimeZone
См. также:
setDefault(TimeZone)

setDefault

public static void setDefault(TimeZone zone)

Устанавливает часовой пояс по умолчанию, который возвращается методом getDefault. Значение по умолчанию кешируется. Если zone равно null, кешированный часовой пояс по умолчанию очищается. Этот метод не изменяет значение свойства user.timezone.

Параметры:
zone - новый часовой пояс по умолчанию, или null
Исключения:
SecurityException - если системный менеджер безопасности checkPermission запрещает PropertyPermission("user.timezone", "write")
См. также:
getDefault(), PropertyPermission

hasSameRules

public boolean hasSameRules(TimeZone other)

Возвращает true, если этот часовой пояс имеет те же правила и смещение, что и другой часовой пояс. То есть, если этот часовой пояс отличается только идентификатором, если вообще. Возвращает false, если другой часовой пояс равен null.

Параметры:
other - объект часового пояса для сравнения
Возвращает:
true, если другой часовой пояс не равен null и такой же, как этот, за исключением возможного различия в идентификаторе
С:
1.2

clone

public Object clone()

Создаёт копию этого объекта часового пояса.

Переопределяет:
clone в классе Object
Возвращает:
клонированный объект часового пояса
См. также:
Cloneable

© 1993, 2020, 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/11/docs/api/java.base/java/util/TimeZone.html

Spec-Zone .ru
спецификации, руководства, описания, API