Класс TimeZone
- java.lang.Object
-
- java.util.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" означают соответственно на 10 часов и 10 минут больше, чем GMT. Формат независим от локали, и цифры должны быть взяты из блока 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 может распознать только одно из них.- С:
- JDK1.1
- См. также:
-
Calendar,GregorianCalendar,SimpleTimeZone, Сериализованная форма
Поля
| Модификатор и тип | Поле и описание |
|---|---|
static int |
LONG Спецификатор стиля для |
static int |
SHORT Спецификатор стиля для |
Краткое описание конструкторов
| Конструктор и описание |
|---|
TimeZone() Единственный конструктор. |
Краткое описание методов
| Модификатор и тип | Метод и описание |
|---|---|
Object |
clone() Создаёт копию этого |
static String[] |
getAvailableIDs() Получает все доступные поддерживаемые идентификаторы. |
static String[] |
getAvailableIDs(int rawOffset) Получает доступные идентификаторы в соответствии с заданным смещением часового пояса в миллисекундах. |
static TimeZone |
getDefault() Получает по умолчанию |
String |
getDisplayName() Возвращает полное стандартное имя этого |
String |
getDisplayName(boolean daylight,
int style) Возвращает имя в указанной |
String |
getDisplayName(boolean daylight,
int style,
Locale locale) Возвращает имя в указанной |
String |
getDisplayName(Locale 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) Получает |
static TimeZone |
getTimeZone(ZoneId zoneId) Получает |
boolean |
hasSameRules(TimeZone other) Возвращает true, если этот пояс имеет те же правила и смещение, что и другой пояс. |
abstract boolean |
inDaylightTime(Date date) Определяет, находится ли данное |
boolean |
observesDaylightTime() Возвращает |
static void |
setDefault(TimeZone zone) Устанавливает |
void |
setID(String ID) Устанавливает идентификатор часового пояса. |
abstract void |
setRawOffset(int offsetMillis) Устанавливает базовое смещение часового пояса по отношению к GMT. |
ZoneId |
toZoneId() Преобразует этот объект |
abstract boolean |
useDaylightTime() Определяет, использует ли этот |
Методы, унаследованные от класса 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. Например, 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-смещения.
- Параметры:
-
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()
Возвращает полное имя стандартного времени этого TimeZone в формате, подходящем для отображения пользователю в локали по умолчанию.
Этот метод эквивалентен:
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)
Возвращает полное имя стандартного времени этого TimeZone в формате, подходящем для отображения пользователю в указанной локали.
Этот метод эквивалентен:
getDisplayName(false, LONG, locale)
- Параметры:
-
locale- локаль, в которой нужно предоставить имя для отображения. - Возвращает:
- человекопонятное имя этого часового пояса в заданной локали.
- Исключения:
-
NullPointerException- еслиlocaleявляетсяnull. - С момента:
- 1.2
- См. также:
getDisplayName(boolean, int, Locale)
getDisplayName
public final String getDisplayName(boolean daylight,
int style) Возвращает имя в указанной локали этого TimeZone подходящее для отображения пользователю в локали по умолчанию. Если указанный daylight является true, возвращается имя летнего времени (даже если этот TimeZone не использует летнее время). В противном случае возвращается имя стандартного времени.
Этот метод эквивалентен:
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) Возвращает имя в указанной локали этого TimeZone подходящее для отображения пользователю в указанной локали. Если указанный daylight является true, возвращается имя летнего времени (даже если этот TimeZone не использует летнее время). В противном случае возвращается имя стандартного времени.
При поиске имени часового пояса используется стандартный путь поиска локали Locale из ResourceBundle от заданной локали. (Поиск по 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 летнее время.
Если базовая реализация TimeZone поддерживает изменения расписания летнего времени в прошлом и будущем, этот метод ссылается на последнее известное правило летнего времени, которое может быть будущим прогнозом и может не совпадать с текущим правилом. Рассмотрите возможность вызова observesDaylightTime(), если следует учитывать также текущее правило.
- Возвращает:
-
true, если этотTimeZoneиспользует летнее время,false, в противном случае. - См. также:
-
inDaylightTime(Date),Calendar.DST_OFFSET
observesDaylightTime
public boolean observesDaylightTime()
Возвращает true , если этот TimeZone в настоящее время использует летнее время или если переход от стандартного времени к летнему времени произойдет в будущем.
Реализация по умолчанию возвращает 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-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, но различаются по поведению летнего времени.
- См. также:
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)
Устанавливает значение по умолчанию TimeZone , которое возвращается методом getDefault. Значение по умолчанию кэшируется. Если zone равно null, кэшированное значение по умолчанию TimeZone очищается. Этот метод не изменяет значение свойства user.timezone.
- Параметры:
-
zone- новое значение по умолчаниюTimeZone, или 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()
Создает копию этого TimeZone.
© 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.