所有类


java.util
类 TimeZone

java.lang.Object
  继承者 java.util.TimeZone
所有已实现的接口:
Serializable, Cloneable
直接已知子类:
SimpleTimeZone

public abstract class TimeZone
   
   
   
   
   
extends Object
implements Serializable, Cloneable

TimeZone 表示时区偏移量,也可以计算夏令时。

通常,使用 getDefault 获得 TimeZonegetDefault 基于程序运行所在的时区创建 TimeZone。例如,对于在日本运行的程序,getDefault 基于日本标准时间创建 TimeZone 对象。

也可以用 getTimeZone 及时区 ID 获取 TimeZone 。例如美国太平洋时区的时区 ID 是 "America/Los_Angeles"。因此,可以使用下面语句获得美国太平洋时间 TimeZone 对象:

 TimeZone tz = TimeZone.getTimeZone("America/Los_Angeles");
 
可以使用 getAvailableIDs 方法来对所有受支持的时区 ID 进行迭代。可以选择受支持的 ID 来获得 TimeZone。如果想要的时区无法用受支持的 ID 之一表示,那么可以指定自定义时区 ID 来生成 TimeZone。自定义时区 ID 的语法是:
 CustomID:
         GMT Sign Hours : Minutes
         GMT Sign Hours Minutes
         GMT Sign Hours
Sign: 下面之一
         + -
 Hours:
         Digit
         Digit Digit
 Minutes:
         Digit Digit
 Digit: 下面之一
         0 1 2 3 4 5 6 7 8 9
 
Hours 必须在 0 至 23 之间,Minutes 必须在 00 至 59 之间。例如,"GMT+10" 和 "GMT+0010" 分别意味着比 GMT 提前 10 小时和 10 分钟。

格式是与区域无关的,并且数字必须取自 Unicode 标准的 Basic Latin 块。没有夏令时转换安排可以用自定义时区 ID 指定。如果指定的字符串与语法不匹配,就使用 "GMT"

当创建一个 TimeZone 时,指定的自定义时区 ID 采用下面的语法进行标准化:

 NormalizedCustomID:
         GMT Sign TwoDigitHours : Minutes
Sign: 下面之一
         + -
 TwoDigitHours:
         Digit Digit
 Minutes:
         Digit Digit
 Digit: 下面之一
         0 1 2 3 4 5 6 7 8 9
 
例如,TimeZone.getTimeZone("GMT-8").getID() 返回 "GMT-08:00"。

三字母时区 ID

为了与 JDK 1.1.x 兼容,一些三字母时区 ID(比如 "PST"、"CTT"、"AST")也受支持。但是,它们的使用被废弃,这是因为相同的缩写经常用于多个时区(例如,"CST" 可以是美国的 "Central Standard Time" 和 "China Standard Time"),但是 Java 平台只可以识别其中一种。

从以下版本开始:
JDK1.1
另请参见:
Calendar, GregorianCalendar, SimpleTimeZone, 序列化表格

字段摘要
static intLONG
          指出长名称的 getDisplayName() 的风格说明符。
static intSHORT
          指出短名称(比如 "PST")的 getDisplayName() 的风格说明符。
 
构造方法摘要
TimeZone()
          单独的构造方法。
 
方法摘要
 Objectclone()
          创建此 TimeZone 的一个副本。
static String[]getAvailableIDs()
          获取受支持的所有可用 ID。
static String[]getAvailableIDs(int rawOffset)
          根据给定的时区偏移量获取可用的 ID。
static TimeZonegetDefault()
          获取此主机的默认 TimeZone
 StringgetDisplayName()
          返回适合于展示给默认区域的用户的时区名称。
 StringgetDisplayName(boolean daylight, int style)
          返回适合于展示给默认区域的用户的时区名称。
 StringgetDisplayName(boolean daylight, int style, Locale locale)
          返回适合于展示给指定区域的用户的时区名称。
 StringgetDisplayName(Locale locale)
          返回适合于展示给指定区域的用户的时区名称。
 intgetDSTSavings()
          返回要添加到本地标准时间以获取本地挂钟时间的时间量。
 StringgetID()
          获取此时区的 ID。
abstract  intgetOffset(int era, int year, int month, int day, int dayOfWeek, int milliseconds)
          获取当前日期的时区偏移量(在夏令时情况下进行修改)。
 intgetOffset(long date)
          从给定日期的 UTC 返回此时区的偏移量。
abstract  intgetRawOffset()
          返回添加到 UTC 以获取此时区中的标准时间的时间量(以毫秒为单位)。
static TimeZonegetTimeZone(String ID)
          获取给定 ID 的 TimeZone
 booleanhasSameRules(TimeZone other)
          如果此区域和另一个区域具有相同的规则和偏移量,也就是说,如果此区域只可能在 ID 上与另一个区域不同,则返回 true。
abstract  booleaninDaylightTime(Date date)
          查询给定的日期是否在此时区的夏令时中。
static voidsetDefault(TimeZone zone)
          设置由 getDefault 方法返回的 TimeZone
 voidsetID(String ID)
          设置时区 ID。
abstract  voidsetRawOffset(int offsetMillis)
          把基准时区偏移量设置到 GMT。
abstract  booleanuseDaylightTime()
          查询此时区是否使用夏令时。
 
从类 java.lang.Object 继承的方法
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

SHORT

public static final int SHORT
指出短名称(比如 "PST")的 getDisplayName() 的风格说明符。

从以下版本开始:
1.2
另请参见:
LONG, 常量字段值

LONG

public static final int LONG
指出长名称的 getDisplayName() 的风格说明符。

从以下版本开始:
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 - 自 1970 年 1 月 1 日 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 的偏移量变化,那么此方法返回当前日期的原始偏移量值。例如,在火奴鲁鲁(美国夏威夷州的首府和港市),它的原始偏移量在 1947 年从 GMT-10:30 改变到 GMT-10:00,并且此方法始终返回 -36000000 毫秒(即 -10 小时)。

返回:
添加到 UTC 的原始偏移时间量(以毫秒为单位)。
另请参见:
Calendar.ZONE_OFFSET

getID

public String getID()
获取此时区的 ID。

返回:
此时区的 ID。

setID

public void setID(String ID)
设置时区 ID。这不会改变时区对象中的任何其他数据。

参数:
ID - 新的时区 ID。