モジュール java.base
パッケージ java.util

クラスSimpleTimeZone

java.lang.Object
java.util.TimeZone
java.util.SimpleTimeZone
すべての実装されたインタフェース:
Serializable, Cloneable

public class SimpleTimeZone extends TimeZone
SimpleTimeZoneは、グレゴリオ暦で使用するためのタイムゾーンを表すTimeZoneの具象サブクラスです。 クラスは直接計算されたオフセットと呼ばれる、GMTからのオフセット、および夏時間スケジュールの開始ルールおよび終了ルールを保持します。 各々の単一値を保持するだけなので、GMTからのオフセットおよび夏時間スケジュールの歴史的変化を扱うことはできませんが、夏時間スケジュールが実際に開始する年をsetStartYearメソッドで指定することはできます。

夏時間スケジュールを備えたSimpleTimeZoneを構築するには、start-ruleend-ruleのルールセットでスケジュールを記述します。 夏時間が開始または終了する日付は、monthday-of-month、およびday-of-week値を組み合わせて指定します。 month値は、Calendar.MARCHなど、CalendarのMONTHフィールド値によって表されます。 day-of-week値は、SUNDAYなど、CalendarのDAY_OF_WEEK値によって表されます。 値の組み合わせの意味は次のとおりです。

  • 月の正確な日付
    月の正確な日付を指定するには、monthおよびday-of-monthを正確な値に設定し、day-of-weekを0に設定します。
    たとえば、3月1日を指定するには、monthMARCHに、day-of-monthを1に、day-of-weekを0に設定します。
  • 月の日付以降の曜日
    月の正確な日付またはそれ以降の日付の曜日を指定するには、monthに正確な月の値を設定し、day-of-monthにルールが適用される最初の日付を設定し、day-of-weekに負のDAY_OF_WEEKフィールド値を設定します。
    たとえば、4月の第2日曜日を指定するには、monthAPRILに、day-of-monthを8に、day-of-week-SUNDAYに設定します。
  • 月の日付以前の曜日
    月の正確な日付またはそれ以前の日付の曜日を指定するには、day-of-monthおよびday-of-weekを負の値に設定します。
    たとえば、3月21日以前の最後の水曜日を指定するには、monthMARCHに、day-of-monthを -21に、day-of-week-WEDNESDAYに設定します。
  • 月の最終の曜日
    月の最終の曜日を指定するには、day-of-weekDAY_OF_WEEK値に、day-of-monthを -1に設定します。
    たとえば、10月の最終日曜日を指定するには、monthOCTOBERに、day-of-weekSUNDAYに、day-of-monthを -1に設定します。
夏時間が開始または終了する日の時間は、当日のミリ秒値で指定します。 時間を指定するためのmodeは3種類あります。WALL_TIMESTANDARD_TIME、およびUTC_TIMEです。 たとえば、夏時間がウォール時計時間の午前2:00で終了する場合、WALL_TIMEモードの7200000ミリ秒で指定できます。 この場合、end-ruleのウォール時計時間は夏時間と同じものになります。

次に、タイムゾーン・オブジェクトを構築するパラメータの例を示します。


      // 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
関連項目: