JavaTM 2 Platform
Standard Ed. 6

java.util
類別 SimpleTimeZone

java.lang.Object
  繼承者 java.util.TimeZone
      繼承者 java.util.SimpleTimeZone
所有已實作的介面:
Serializable, Cloneable

public class SimpleTimeZone
extends TimeZone

SimpleTimeZoneTimeZone 的具體子類別,表示一個使用格里高里歷的時區。此類別保持一個相對 GMT 的偏移量,稱為原始偏移量,並保持夏令時安排的開始和結束規則。由於它僅為每一項保持單個值,因此它無法處理相對 GMT 的偏移量以及夏令時安排中的歷史更改,除了 setStartYear 方法可以指定開始實施夏令時安排的年份之外。

要建構一個帶有夏令時安排的 SimpleTimeZone,可以使用一組規則,即開始規則結束規則 來描述該安排。夏令時開始或結束的那一天通過 monthday-of-monthday-of-week 值聯合指定。month 值由 Calendar 的 MONTH 欄位值表示,如 Calendar.MARCHday-of-week 值由 Calendar 的 DAY_OF_WEEK 值表示,如 SUNDAY。這些值的組合含意如下。

夏令時開始或結束的那一天的具體時間由該日期內的毫秒值指定。有三種指定時間的網要WALL_TIMESTANDARD_TIMEUTC_TIME。例如,如果夏令時在掛鐘時間凌晨 2:00 結束,則可以在 WALL_TIME 網要中用 7200000 毫秒指定該時間。在這種情況下,結束規則 的掛鐘時間與夏令時時間是一樣的。

下面是建構時區物件的一些參數範例。


      // Base GMT offset: -8:00
      // DST starts:      at 2:00am in standard time
      //                  on the first Sunday in April
      // DST ends:        at 2:00am in daylight time
      //                  on the last Sunday in October
      // Save:            1 hour
      SimpleTimeZone(-28800000,
                     "America/Los_Angeles",
                     Calendar.APRIL, 1, -Calendar.SUNDAY,
                     7200000,
                     Calendar.OCTOBER, -1, Calendar.SUNDAY,
                     7200000,
                     3600000)

      // Base GMT offset: +1:00
      // DST starts:      at 1:00am in UTC time
      //                  on the last Sunday in March
      // DST ends:        at 1:00am in UTC time
      //                  on the last Sunday in October
      // Save:            1 hour
      SimpleTimeZone(3600000,
                     "Europe/Paris",
                     Calendar.MARCH, -1, Calendar.SUNDAY,
                     3600000, SimpleTimeZone.UTC_TIME,
                     Calendar.OCTOBER, -1, Calendar.SUNDAY,
                     3600000, SimpleTimeZone.UTC_TIME,
                     3600000)
 
這些參數規則也適用於設置規則的方法,如 setStartRule

從以下版本開始:
1.1
另請參見:
Calendar, GregorianCalendar, TimeZone, 序列化表格

欄位摘要
static int STANDARD_TIME
          指定為標準時間的開始或結束時間網要的常數。
static int UTC_TIME
          指定為 UTC 的開始或結束時間網要的常數。
static int WALL_TIME
          指定為掛鐘時間的開始或結束時間網要的常數。
 
從類別 java.util.TimeZone 繼承的欄位
LONG, SHORT
 
建構子摘要
SimpleTimeZone(int rawOffset, String ID)
          使用給定的相對於 GMT 的基準時區偏移量和不帶夏令時安排的時區 ID 建構一個 SimpleTimeZone。
SimpleTimeZone(int rawOffset, String ID, int startMonth, int startDay, int startDayOfWeek, int startTime, int endMonth, int endDay, int endDayOfWeek, int endTime)
          根據給定的相對於 GMT 的基準時區偏移量、時區 ID 和夏令時開始和結束的規則來建構一個 SimpleTimeZone。
SimpleTimeZone(int rawOffset, String ID, int startMonth, int startDay, int startDayOfWeek, int startTime, int endMonth, int endDay, int endDayOfWeek, int endTime, int dstSavings)
          根據給定的相對於 GMT 的基準時區偏移量、時區 ID 和夏令時開始和結束的規則來建構一個 SimpleTimeZone。
SimpleTimeZone(int rawOffset, String ID, int startMonth, int startDay, int startDayOfWeek, int startTime, int startTimeMode, int endMonth, int endDay, int endDayOfWeek, int endTime, int endTimeMode, int dstSavings)
          根據給定的相對於 GMT 的基準時區偏移量、時區 ID 和夏令時開始和結束的規則來建構一個 SimpleTimeZone。
 
方法摘要
 Object clone()
          返回此 SimpleTimeZone 實例的一個副本。
 boolean equals(Object obj)
          比較兩個 SimpleTimeZone 物件的相等性。
 int getDSTSavings()
          返回設置在夏令時期間時鐘提前的時間量(以毫秒為單位)。
 int getOffset(int era, int year, int month, int day, int dayOfWeek, int millis)
          返回以毫秒為單位的本地時間與 UTC 之間的差別,對於指定日期和時間,把原始偏移量和夏令時的效果同時考慮在內。
 int getOffset(long date)
          從給定時間的 UTC 返回此時區的偏移量。
 int getRawOffset()
          獲取此時區的 GMT 偏移量。
 int hashCode()
          產生 SimpleDateFormat 物件的雜湊碼。
 boolean hasSameRules(TimeZone other)
          如果此時區與另一時區具有相同的規則和偏移量,則返回 true
 boolean inDaylightTime(Date date)
          如果給定日期在夏令時期間,則執行查詢。
 void setDSTSavings(int millisSavedDuringDST)
          設置在夏令時期間時鐘提前的時間量(以毫秒為單位)。
 void setEndRule(int endMonth, int endDay, int endTime)
          將夏令時結束規則設置為某個月份的固定日期。
 void setEndRule(int endMonth, int endDay, int endDayOfWeek, int endTime)
          設置夏令時結束規則。
 void setEndRule(int endMonth, int endDay, int endDayOfWeek, int endTime, boolean after)
          將夏令時結束規則設置為某個月份給定日期之前或之後的星期幾,例如,8 號或之後的第一個星期一。
 void setRawOffset(int offsetMillis)
          把基準時區偏移量設置到 GMT。
 void setStartRule(int startMonth, int startDay, int startTime)
          將夏令時開始規則設置為某個月份的固定日期。
 void setStartRule(int startMonth, int startDay, int startDayOfWeek, int startTime)
          設置夏令時的開始規則。
 void setStartRule(int startMonth, int startDay, int startDayOfWeek, int startTime, boolean after)
          將夏令時開始規則設置為某個月份給定日期之前或之後的星期幾,例如,8 號或之後的第一個星期一。
 void setStartYear(int year)
          設置夏令時的開始年份。
 String toString()
          返回此時區的字元串表示形式。
 boolean useDaylightTime()
          如果此時區使用夏令時,則執行查詢。
 
從類別 java.util.TimeZone 繼承的方法
getAvailableIDs, getAvailableIDs, getDefault, getDisplayName, getDisplayName, getDisplayName, getDisplayName, getID, getTimeZone, setDefault, setID
 
從類別 java.lang.Object 繼承的方法
finalize, getClass, notify, notifyAll, wait, wait, wait
 

欄位詳細資訊

WALL_TIME

public static final int WALL_TIME
指定為掛鐘時間的開始或結束時間網要的常數。掛鐘時間是開始規則的標準時間,是結束規則的夏令時時間。

從以下版本開始:
1.4
另請參見:
常數欄位值

STANDARD_TIME

public static final int STANDARD_TIME
指定為標準時間的開始或結束時間網要的常數。

從以下版本開始:
1.4
另請參見:
常數欄位值

UTC_TIME

public static final int UTC_TIME
指定為 UTC 的開始或結束時間網要的常數。例如,歐盟規則就指定為 UTC 時間。

從以下版本開始:
1.4
另請參見:
常數欄位值
建構子詳細資訊

SimpleTimeZone

public SimpleTimeZone(int rawOffset,
                      String ID)
使用給定的相對於 GMT 的基準時區偏移量和不帶夏令時安排的時區 ID 建構一個 SimpleTimeZone。

參數:
rawOffset - 相對於 GMT 的基準時區偏移量(以毫秒為單位)。
ID - 此實例給定的時區名稱。

SimpleTimeZone

public SimpleTimeZone(int rawOffset,
                      String ID,
                      int startMonth,
                      int startDay,
                      int startDayOfWeek,
                      int startTime,
                      int endMonth,
                      int endDay,
                      int endDayOfWeek,
                      int endTime)
根據給定的相對於 GMT 的基準時區偏移量、時區 ID 和夏令時開始和結束的規則來建構一個 SimpleTimeZone。假定 startTimeendTime 都要以掛鐘時間表示。夏令時節約的時間量假定為 3600000 毫秒(也就是 1 小時)。此建構子等效於:

     SimpleTimeZone(rawOffset,
                    ID,
                    startMonth,
                    startDay,
                    startDayOfWeek,
                    startTime,
                    SimpleTimeZone.WALL_TIME,
                    endMonth,
                    endDay,
                    endDayOfWeek,
                    endTime,
                    SimpleTimeZone.WALL_TIME,
                    3600000)
 

參數:
rawOffset - GMT 的給定基準時區偏移量。
ID - 此物件給定的時區 ID。
startMonth - 夏令時開始的月份。月份是一個 MONTH 欄位值(基於 0。例如,0 代表 1 月)。
startDay - 夏令時開始的日期。有關此參數的特殊情形,請參閱類別的描述。
startDayOfWeek - 夏令時開始時是一周的星期幾。有關此參數的特殊情形,請參閱類別的描述。
startTime - 以本地掛鐘時間表示的夏令時開始時間(此天中的毫秒數),在此情況下為本地標準時間。
endMonth - 夏令時結束的月份。月份是一個 MONTH 欄位值(基於 0。例如,9 代表 10 月)。
endDay - 夏令時結束的日期。有關此參數的特殊情形,請參閱類別的描述。
endDayOfWeek - 夏令時結束時是一周的星期幾。有關此參數的特殊情形,請參閱類別的描述。
endTime - 以本地掛鐘時間表示的夏令時結束時間(此天中的毫秒數),在此情況下為本地標準時間。
拋出:
IllegalArgumentException - 如果月份、日期、星期或時間參數超出開始或結束規則的範圍。

SimpleTimeZone

public SimpleTimeZone(int rawOffset,
                      String ID,
                      int startMonth,
                      int startDay,
                      int startDayOfWeek,
                      int startTime,
                      int endMonth,
                      int endDay,
                      int endDayOfWeek,
                      int endTime,
                      int dstSavings)
根據給定的相對於 GMT 的基準時區偏移量、時區 ID 和夏令時開始和結束的規則來建構一個 SimpleTimeZone。指定 startTimeendTime 都要以掛鐘時間表示。此建構子等效於:

     SimpleTimeZone(rawOffset,
                    ID,
                    startMonth,
                    startDay,
                    startDayOfWeek,
                    startTime,
                    SimpleTimeZone.WALL_TIME,
                    endMonth,
                    endDay,
                    endDayOfWeek,
                    endTime,
                    SimpleTimeZone.WALL_TIME,
                    dstSavings)
 

參數:
rawOffset - GMT 的給定基準時區偏移量。
ID - 此物件給定的時區 ID。
startMonth - 夏令時開始的月份。月份是一個 MONTH 欄位值(基於 0。例如,0 代表 1 月)。
startDay - 夏令時開始的日期。有關此參數的特殊情形,請參閱類別的描述。
startDayOfWeek - 夏令時開始時是一周的星期幾。有關此參數的特殊情形,請參閱類別的描述。
startTime - 以本地掛鐘時間表示的夏令時開始時間,在此情況下為本地標準時間。
endMonth - 夏令時結束的月份。月份是一個 MONTH 欄位值(基於 0。例如,9 代表 10 月)。
endDay - 夏令時結束的日期。有關此參數的特殊情形,請參閱類別的描述。
endDayOfWeek - 夏令時結束時是一周的星期幾。有關此參數的特殊情形,請參閱類別的描述。
startTime - 以本地掛鐘時間表示的夏令時結束時間,在此情況下為本地標準時間。
dstSavings - 在夏令時期間節省的時間量(以毫秒為單位)。
拋出:
IllegalArgumentException - 如果月份、日期、星期或時間參數超出開始或結束規則的範圍。
從以下版本開始:
1.2

SimpleTimeZone

public SimpleTimeZone(int rawOffset,
                      String ID,
                      int startMonth,
                      int startDay,
                      int startDayOfWeek,
                      int startTime,
                      int startTimeMode,
                      int endMonth,
                      int endDay,
                      int endDayOfWeek,
                      int endTime,
                      int endTimeMode,
                      int dstSavings)
根據給定的相對於 GMT 的基準時區偏移量、時區 ID 和夏令時開始和結束的規則來建構一個 SimpleTimeZone。此建構子採用一組完整的開始和結束規則參數,其中包括 startTimeendTime 網要。此網要指定掛鐘時間標準時間UTC 時間

參數:
rawOffset - GMT 的給定基準時區偏移量。
ID - 此物件給定的時區 ID。
startMonth - 夏令時開始的月份。月份是一個 MONTH 欄位值(基於 0。例如,0 代表 1 月)。
startDay - 夏令時開始的日期。有關此參數的特殊情形,請參閱類別的描述。
startDayOfWeek - 夏令時開始時是一周的星期幾。有關此參數的特殊情形,請參閱類別的描述。
startTime - 由 startTimeMode 指定的時間網要的夏令時開始時間。
startTimeMode - 由 startTime 指定的開始時間網要。
endMonth - 夏令時結束的月份。月份是一個 MONTH 欄位值(基於 0。例如,9 代表 10 月)。
endDay - 夏令時結束的日期。有關此參數的特殊情形,請參閱類別的描述。
endDayOfWeek - 夏令時結束時是一周的星期幾。有關此參數的特殊情形,請參閱類別的描述。
endTime - 由 endTimeMode 指定的時間網要的夏令時結束時間。
endTimeMode - 由 endTime 指定的結束時間的網要。
dstSavings - 在夏令時期間節省的時間量(以毫秒為單位)。
拋出:
IllegalArgumentException - 如果月份、日期、星期或時間參數超出開始或結束規則的範圍,或者某個時間網要值無效。
從以下版本開始:
1.4
另請參見:
WALL_TIME, STANDARD_TIME, UTC_TIME
方法詳細資訊

setStartYear

public void setStartYear(int year)
設置夏令時的開始年份。

參數:
year - 夏令時的開始年份。

setStartRule

public void setStartRule(int startMonth,
                         int startDay,
                         int startDayOfWeek,
                         int startTime)
設置夏令時的開始規則。例如,如果夏令時在本地掛鐘時間的 4 月第一個星期日的上午 2 點開始,則可以通過以下調用來設置開始規則:
setStartRule(Calendar.APRIL, 1, Calendar.SUNDAY, 2*60*60*1000);

參數:
startMonth - 夏令時開始的月份。月份是一個 MONTH 欄位值(基於 0。例如,0 代表 1 月)。
startDay - 夏令時開始的日期。有關此參數的特殊情形,請參閱類別的描述。
startDayOfWeek - 夏令時開始時是一周的星期幾。有關此參數的特殊情形,請參閱類別的描述。
startTime - 以本地掛鐘時間表示的夏令時開始時間,在此情況下為本地標準時間。
拋出:
IllegalArgumentException - 如果 startMonthstartDaystartDayOfWeekstartTime 參數超出範圍。

setStartRule

public void setStartRule(int startMonth,
                         int startDay,
                         int startTime)
將夏令時開始規則設置為某個月份的固定日期。此方法等效於:
setStartRule(startMonth, startDay, 0, startTime)

參數:
startMonth - 夏令時開始的月份。月份是一個 MONTH 欄位值(基於 0。例如,0 代表 1 月)。
startDay - 夏令時開始的日期。
startTime - 以本地掛鐘時間表示的夏令時開始時間,在此情況下為本地標準時間。有關此參數的特殊情形,請參閱類別的描述。
拋出:
IllegalArgumentException - 如果 startMonthstartDayOfMonthstartTime 參數超出範圍。
從以下版本開始:
1.2

setStartRule

public void setStartRule(int startMonth,
                         int startDay,
                         int startDayOfWeek,
                         int startTime,
                         boolean after)
將夏令時開始規則設置為某個月份給定日期之前或之後的星期幾,例如,8 號或之後的第一個星期一。

參數:
startMonth - 夏令時開始的月份。月份是一個 MONTH 欄位值(基於 0。例如,0 代表 1 月)。
startDay - 夏令時開始的日期。
startDayOfWeek - 夏令時開始時是一周的星期幾。
startTime - 以本地掛鐘時間表示的夏令時開始時間,在此情況下為本地標準時間。
after - 如果為 true,則此規則將選擇 dayOfMonth 或它之後 的第一個 dayOfWeek。如果為 false,則此規則將選擇 dayOfMonth 或它之前 的最後一個 dayOfWeek
拋出:
IllegalArgumentException - 如果 startMonthstartDaystartDayOfWeekstartTime 參數超出範圍。
從以下版本開始:
1.2

setEndRule

public void setEndRule(int endMonth,
                       int endDay,
                       int endDayOfWeek,
                       int endTime)
設置夏令時結束規則。例如,如果夏令時在本地掛鐘時間的 10 月最後一個星期天的上午 2 點結束,則可以通過以下調用來設置結束規則:setEndRule(Calendar.OCTOBER, -1, Calendar.SUNDAY, 2*60*60*1000);

參數:
endMonth - 夏令時結束的月份。月份是一個 MONTH 欄位值(基於 0。例如,9 代表 10 月)。
endDay - 夏令時結束的日期。有關此參數的特殊情形,請參閱類別的描述。
endDayOfWeek - 夏令時結束時是一周的星期幾。有關此參數的特殊情形,請參閱類別的描述。
endTime - 以本地掛鐘時間表示的夏令時結束時間(此天中的毫秒數),在此情況下為本地標準時間。
拋出:
IllegalArgumentException - 如果 endMonthendDayendDayOfWeekendTime 參數超出範圍。

setEndRule

public void setEndRule(int endMonth,
                       int endDay,
                       int endTime)
將夏令時結束規則設置為某個月份的固定日期。此方法等效於:
setEndRule(endMonth, endDay, 0, endTime)

參數:
endMonth - 夏令時結束的月份。月份是一個 MONTH 欄位值(基於 0。例如,9 代表 10 月)。
endDay - 夏令時結束的日期。
endTime - 以本地掛鐘時間表示的夏令時結束時間(此天中的毫秒數),在此情況下為本地標準時間。
拋出:
IllegalArgumentException - 如果 endMonthendDayendTime 參數超出範圍。
從以下版本開始:
1.2

setEndRule

public void setEndRule(int endMonth,
                       int endDay,
                       int endDayOfWeek,
                       int endTime,
                       boolean after)
將夏令時結束規則設置為某個月份給定日期之前或之後的星期幾,例如,8 號或之後的第一個星期一。

參數:
endMonth - 夏令時結束的月份。月份是一個 MONTH 欄位值(基於 0。例如,9 代表 10 月)。
endDay - 夏令時結束的日期。
endDayOfWeek - 夏令時結束時是一周的星期幾。
endTime - 以本地掛鐘時間表示的夏令時結束時間(此天中的毫秒數),在此情況下為本地標準時間。
after - 如果為 true,則此規則將選擇 endDay 或它之後 的第一個 endDayOfWeek。如果為 false,則此規則將選擇該月份的 endDay 或它之前的最後一個 endDayOfWeek
拋出:
IllegalArgumentException - 如果 endMonthendDayendDayOfWeekendTime 參數超出範圍。
從以下版本開始:
1.2

getOffset

public int getOffset(long date)
從給定時間的 UTC 返回此時區的偏移量。如果夏令時在給定的時間是有效的,就使用夏令時節省值調整偏移值。

覆寫:
類別 TimeZone 中的 getOffset
參數:
date - 出現時區偏移量的時間。
返回:
添加到 UTC 以獲取本地時間的時間量(以毫秒為單位)。
從以下版本開始:
1.4
另請參見:
Calendar.ZONE_OFFSET, Calendar.DST_OFFSET

getOffset

public int getOffset(int era,
                     int year,
                     int month,
                     int day,
                     int dayOfWeek,
                     int millis)
返回以毫秒為單位的本地時間與 UTC 之間的差別,對於指定日期和時間,把原始偏移量和夏令時的效果同時考慮在內。此方法假定開始和結束月份是不同的。它還使用預設的 GregorianCalendar 物件作為其基礎日曆,例如用於確定閏年。除預設的 GregorianCalendar 之外,請不要將此方法的結果與其他日曆一起使用。

註:一般情況下,客戶應使用 Calendar.get(ZONE_OFFSET) + Calendar.get(DST_OFFSET) 而不調用此方法。

指定者:
類別 TimeZone 中的 getOffset
參數:
era - 給定日期的年代。
year - 給定日期的年份。
month - 給定日期的月份。月份是從 0 開始的,比如 0 代表 1 月。
day - 給定日期的月份中的某一天。
dayOfWeek - 給定日期的一周中的某一天。
millis - 標準 本地時間中天的毫秒數。
返回:
要添加到 UTC 以獲取本地時間的毫秒數。
拋出:
IllegalArgumentException - 如果 eramonthdaydayOfWeekmillis 參數超出範圍。
另請參見:
Calendar.ZONE_OFFSET, Calendar.DST_OFFSET

getRawOffset

public int getRawOffset()
獲取此時區的 GMT 偏移量。

指定者:
類別 TimeZone 中的 getRawOffset
返回:
以毫秒為單位的 GMT 偏移量值。
另請參見:
setRawOffset(int)

setRawOffset

public void setRawOffset(int offsetMillis)
把基準時區偏移量設置到 GMT。這是添加到 UTC 以獲取本地時間的偏移量。

指定者:
類別 TimeZone 中的 setRawOffset
參數:
offsetMillis - GMT 的給定基準時區偏移量。
另請參見:
getRawOffset()

setDSTSavings

public void setDSTSavings(int millisSavedDuringDST)
設置在夏令時期間時鐘提前的時間量(以毫秒為單位)。

參數:
millisSavedDuringDST - 在夏令時規則生效時,相對於標準時間提前的毫秒數。一個正數,一般為 1 小時 (3600000)。
從以下版本開始:
1.2
另請參見:
getDSTSavings()

getDSTSavings

public int getDSTSavings()
返回設置在夏令時期間時鐘提前的時間量(以毫秒為單位)。

覆寫:
類別 TimeZone 中的 getDSTSavings
返回:
在夏令時規則生效時,相對於標準時間提前的毫秒數,如果此時區不實施夏令時,則為 0(零)。
從以下版本開始:
1.2
另請參見:
setDSTSavings(int)

useDaylightTime

public boolean useDaylightTime()
如果此時區使用夏令時,則執行查詢。

指定者:
類別 TimeZone 中的 useDaylightTime
返回:
如果此時區使用夏令時,則返回 true;否則返回 false。

inDaylightTime

public boolean inDaylightTime(Date date)
如果給定日期在夏令時期間,則執行查詢。

指定者:
類別 TimeZone 中的 inDaylightTime
參數:
date - 給定的日期。
返回:
如果給定的日期在夏令時中,則返回 true,否則返回 false。

clone

public Object clone()
返回此 SimpleTimeZone 實例的一個副本。

覆寫:
類別 TimeZone 中的 clone
返回:
此實例的一個副本。
另請參見:
Cloneable

hashCode

public int hashCode()
產生 SimpleDateFormat 物件的雜湊碼。

覆寫:
類別 Object 中的 hashCode
返回:
此物件的雜湊碼。
另請參見:
Object.equals(java.lang.Object), Hashtable

equals

public boolean equals(Object obj)
比較兩個 SimpleTimeZone 物件的相等性。

覆寫:
類別 Object 中的 equals
參數:
obj - 要與之比較的 SimpleTimeZone 物件。
返回:
如果給定的 obj 與此 SimpleTimeZone 物件相同,則返回 true;否則返回 false。
另請參見:
Object.hashCode(), Hashtable

hasSameRules

public boolean hasSameRules(TimeZone other)
如果此時區與另一時區具有相同的規則和偏移量,則返回 true

覆寫:
類別 TimeZone 中的 hasSameRules
參數:
other - 要與之比較的 TimeZone 物件。
返回:
如果給定時區為 SimpleTimeZone,而且與此時區具有相同的規則和偏移量,則返回 true
從以下版本開始:
1.2

toString

public String toString()
返回此時區的字元串表示形式。

覆寫:
類別 Object 中的 toString
返回:
此時區的字元串表示形式。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only