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

クラスTimeZone

java.lang.Object
java.util.TimeZone
すべての実装されたインタフェース:
Serializable, Cloneable
直系の既知のサブクラス:
SimpleTimeZone

public abstract class TimeZone extends Object implements Serializable, Cloneable
TimeZoneは、タイムゾーン・オフセットを表します。また、サマー・タイムを認識します。

通常は、getDefaultを使用してTimeZoneを取得します。このメソッドは、プログラムを実行している場所のタイムゾーンに基づいたTimeZoneを作成します。 たとえば、日本で実行されているプログラムの場合、getDefaultは日本標準時を基にTimeZoneオブジェクトを作成します。

タイムゾーンIDを指定しgetTimeZoneを使用して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: 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」は、それぞれ、GMTより10時間および10分進んだ時間になります。

フォーマットはロケールに依存せず、数字はUnicode標準のBasic Latinブロックの数字である必要があります。 サマー・タイムへの移行スケジュールは、カスタム・タイムゾーンIDでは指定できません。 指定された文字列が構文と一致しない場合は、"GMT"が使用されます。

TimeZoneを作成するときは、指定されたカスタム・タイムゾーンIDは、次の構文で正規化されます。

 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を返します。

3文字のタイムゾーンID

JDK 1.1.xとの互換性のために、その他の3文字のタイムゾーンID (「PST」、「CTT」、「AST」など)もサポートされています。 ただし、複数のタイムゾーンに同じ省略形が使用されることが多く(「CST」はアメリカの「中央標準時」と「中国標準時」など)、Javaプラットフォームではその1つしか認識されないため、この使用は非推奨です
導入されたバージョン:
1.1
関連項目:
  • フィールドのサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    static final int
    「Pacific Standard Time」などの長い名前を示すgetDisplayName()のスタイル指示子です。
    static final int
    「PST」などの短い名前を示すgetDisplayName()のスタイル指示子です。
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    唯一のコンストラクタです。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    このTimeZoneのコピーを作成します。
    static String[]
    サポートされる利用可能なIDをすべて取得します。
    static String[]
    getAvailableIDs(int rawOffset)
    ミリ秒単位で指定されたタイムゾーン・オフセットと一致するIDで使用可能なものを取得します。
    static TimeZone
    Java仮想マシンのデフォルトのTimeZoneを取得します。
    final String
    デフォルト・ロケールでのユーザーへの表示に適した、このTimeZoneの標準時の長い名前を返します。
    final String
    getDisplayName(boolean daylight, int style)
    デフォルト・ロケールでのユーザーへの表示に適した、このTimeZoneの指定されたstyleでの名前を返します。
    getDisplayName(boolean daylight, int style, Locale locale)
    指定された localeでのユーザーへの表示に適した、このTimeZoneの指定されたstyleでの名前を返します。
    final String
    指定されたlocaleでのユーザーへの表示に適した、このTimeZoneの標準時の長い名前を返します。
    int
    ローカル・ウォール時計時間を取得するために、ローカルの標準時間に追加する時間の量を返します。
    現在の所在地のタイムゾーンのIDを取得します。
    abstract int
    getOffset(int era, int year, int month, int day, int dayOfWeek, int milliseconds)
    現在の日付のタイムゾーン・オフセットを返します。夏時間の期間内であれば修正されています。
    int
    getOffset(long date)
    指定された日付でUTCからのこのタイムゾーンのオフセットを返します。
    abstract int
    このタイムゾーンの標準時間を取得するために、UTCに追加するミリ秒単位の時間量を返します。
    static TimeZone
    指定されたIDのTimeZoneを取得します。
    static TimeZone
    指定されたzoneIdTimeZoneを取得します。
    boolean
    このゾーンが比較される別のゾーンと同じルールとオフセットを持つ場合にtrueを返します。
    abstract boolean
    指定されたdateが、このタイムゾーンでは夏時間の期間内かどうかを問い合わせます。
    boolean
    このTimeZoneが現在夏時間の期間内にある場合、または標準時間から夏時間への移行が今後行われる場合にtrueを返します。
    static void
    getDefaultメソッドで返されるTimeZoneを設定します。
    void
    タイムゾーンIDを設定します。
    abstract void
    setRawOffset(int offsetMillis)
    GMTへのベース・タイムゾーン・オフセットを設定します。
    このTimeZoneオブジェクトをZoneIdに変換します。
    abstract boolean
    このTimeZoneが夏時間を使用するかどうかを問い合わせます。

    クラス java.lang.Objectで宣言されたメソッド

    equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • フィールド詳細

    • SHORT

      public static final int SHORT
      「PST」などの短い名前を示すgetDisplayName()のスタイル指示子です。
      導入されたバージョン:
      1.2
      関連項目:
    • LONG

      public static final int LONG
      「Pacific Standard Time」などの長い名前を示すgetDisplayName()のスタイル指示子です。
      導入されたバージョン:
      1.2
      関連項目:
  • コンストラクタの詳細

    • 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 が 1 月
      day - 指定する日付の日。
      dayOfWeek - 指定する日付の曜日。
      milliseconds - 標準ローカル・タイムでの、指定された日のミリ秒。
      戻り値:
      ローカル・タイムを取得するためにGMTに追加するミリ秒単位のオフセット
      関連項目:
    • getOffset

      public int getOffset(long date)
      指定された日付でUTCからのこのタイムゾーンのオフセットを返します。 夏時間が指定された日付で実施されている場合、オフセット値は夏時間の量で調節されます。

      基本となるTimeZone実装サブクラスが、夏時間スケジュールとGMTオフセットの歴史的変化をサポートする場合、このメソッドは歴史的に正確なオフセット値を返します。

      パラメータ:
      date - 1970年1月1日00:00:00 GMTからの、ミリ秒単位で表された日付。
      戻り値:
      ローカル・タイムを取得するためにUTCに追加するミリ秒単位の時間の量
      導入されたバージョン:
      1.4
      関連項目:
    • 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に追加される、ミリ秒単位の直接計算されたオフセット時間の量
      関連項目:
    • getID

      public String getID()
      現在の所在地のタイムゾーンのIDを取得します。
      戻り値:
      現在の所在地のタイムゾーンのID
    • setID

      public void setID(String ID)
      タイムゾーンIDを設定します。 タイムゾーン・オブジェクト内のほかのデータは変更されません。
      パラメータ:
      ID - 新しいタイムゾーンID。
    • getDisplayName

      public final String getDisplayName()
      デフォルト・ロケールでのユーザーへの表示に適した、このTimeZoneの標準時の長い名前を返します。

      このメソッドは、次と同等です。

       getDisplayName(false, LONG,
                      Locale.getDefault(Locale.Category.DISPLAY))
       

      戻り値:
      デフォルト・ロケールでの現在のタイムゾーンを、人が理解できる形式にした名前
      導入されたバージョン:
      1.2
      関連項目:
    • getDisplayName

      public final String getDisplayName(Locale locale)
      指定されたlocaleでのユーザーへの表示に適した、このTimeZoneの標準時の長い名前を返します。

      このメソッドは、次と同等です。

       getDisplayName(false, LONG, locale)
       

      パラメータ:
      locale - 表示名を提供する際に使われるロケール。
      戻り値:
      指定されたロケールでの現在のタイムゾーンを、人が理解できる形式にした名前
      例外:
      NullPointerException - localenullの場合。
      導入されたバージョン:
      1.2
      関連項目:
    • getDisplayName

      public final String getDisplayName(boolean daylight, int style)
      デフォルト・ロケールでのユーザーへの表示に適した、このTimeZoneの指定されたstyleでの名前を返します。 指定されたdaylighttrueの場合は、夏時間の名前が返されます(このTimeZoneが夏時間に従わない場合でも)。 それ以外の場合は、標準時の名前が返されます。

      このメソッドは、次と同等です。

       getDisplayName(daylight, style,
                      Locale.getDefault(Locale.Category.DISPLAY))
       

      パラメータ:
      daylight - 夏時間の名前を示すtrue、または標準時の名前を示すfalse
      style - LONGまたはSHORT
      戻り値:
      デフォルト・ロケールでの現在のタイムゾーンを、人が理解できる形式にした名前
      例外:
      IllegalArgumentException - styleが無効である場合
      導入されたバージョン:
      1.2
      関連項目:
    • getDisplayName

      public String getDisplayName(boolean daylight, int style, Locale locale)
      指定された localeでのユーザーへの表示に適した、このTimeZoneの指定されたstyleでの名前を返します。 指定されたdaylighttrueの場合は、夏時間の名前が返されます(このTimeZoneが夏時間に従わない場合でも)。 それ以外の場合は、標準時の名前が返されます。

      タイムゾーン名の検索時は、指定されたlocaleから導かれたデフォルトのResourceBundleLocale検索パスが使用されます。 (フォール・バックLocaleの検索は行われません。) 検索パスのいずれかのLocale (Locale.ROOTも含む)にタイムゾーン名が見つかった場合は、その名前が返されます。 それ以外の場合は、正規化されたカスタムID形式の文字列が返されます。

      パラメータ:
      daylight - 夏時間の名前を示すtrue、または標準時の名前を示すfalse
      style - LONGまたはSHORT
      locale - 表示名を提供する際に使われるロケール。
      戻り値:
      指定されたロケールでの現在のタイムゾーンを、人が理解できる形式にした名前
      例外:
      IllegalArgumentException - styleが無効である場合
      NullPointerException - localenullの場合。
      導入されたバージョン:
      1.2
      関連項目:
    • getDSTSavings

      public int getDSTSavings()
      ローカル・ウォール時計時間を取得するために、ローカルの標準時間に追加する時間の量を返します。

      useDaylightTime()の呼出しがtrueを返す場合、デフォルト実装は3600000ミリ秒(つまり1時間)を返します。 そうでない場合は、0を返します。

      基本となるTimeZone実装サブクラスが、夏時間スケジュールの歴史的および将来の変化をサポートする場合、このメソッドは既知の最新夏時間ルールの夏時間量を返します。このルールは将来に予測されるものです。

      特定のタイムスタンプにおける夏時間量が必要な場合は、この TimeZoneとタイムスタンプを使用してCalendarを構築し、Calendar.get(Calendar.DST_OFFSET)を呼び出します。

      戻り値:
      ミリ秒単位の夏時間の量
      導入されたバージョン:
      1.4
      関連項目:
    • useDaylightTime

      public abstract boolean useDaylightTime()
      このTimeZoneが夏時間を使用するかどうかを問い合わせます。

      基本となるTimeZone実装サブクラスが、夏時間スケジュールの歴史的および将来の変化をサポートする場合、このメソッドは既知の最新夏時間ルールを参照します。このルールは将来に予測されるものであり、現在のルールとは異なる場合があります。 現在のルールも考慮する必要がある場合は、observesDaylightTime()を呼び出すようにしてください。

      戻り値:
      このTimeZoneが夏時間を使用する場合はtrue、それ以外の場合はfalse
      関連項目:
    • observesDaylightTime

      public boolean observesDaylightTime()
      このTimeZoneが現在夏時間の期間内にある場合、または標準時間から夏時間への移行が今後行われる場合にtrueを返します。

      useDaylightTime()またはinDaylightTime(new Date())trueを返す場合、デフォルト実装はtrueを返します。

      戻り値:
      このTimeZoneが現在夏時間の期間内にある場合、または標準時間から夏時間への移行が今後行われる場合はtrue。それ以外の場合はfalse
      導入されたバージョン:
      1.7
      関連項目:
    • inDaylightTime

      public abstract boolean inDaylightTime(Date date)
      指定されたdateが、このタイムゾーンでは夏時間の期間内かどうかを問い合わせます。
      パラメータ:
      date - 指定されたDate
      戻り値:
      指定された日付が夏時間の期間内の場合はtrue、そうでない場合はfalse
    • getTimeZone

      public static TimeZone getTimeZone(String ID)
      指定されたIDのTimeZoneを取得します。
      パラメータ:
      ID - TimeZoneのID。「PST」のような短縮形式、「America/Los_Angeles」のような完全な名前、あるいは「GMT-8:00」のようなカスタムIDのどれか。 短縮形式は、JDK 1.1.xとの互換性のためだけにサポートされているため、完全な名前を使用する必要がある
      戻り値:
      指定されたTimeZone。指定されたIDを認識できない場合はGMTゾーン。
    • getTimeZone

      public static TimeZone getTimeZone(ZoneId zoneId)
      指定されたzoneIdTimeZoneを取得します。
      パラメータ:
      zoneId - タイムゾーンIDの取得元となるZoneId
      戻り値:
      指定されたTimeZone。指定されたIDを認識できない場合はGMTゾーン。
      例外:
      NullPointerException - zoneIdnullである場合
      導入されたバージョン:
      1.8
    • toZoneId

      public ZoneId toZoneId()
      このTimeZoneオブジェクトをZoneIdに変換します。
      戻り値:
      このTimeZoneと同じタイムゾーンを表すZoneId
      導入されたバージョン:
      1.8
    • getAvailableIDs

      public static String[] getAvailableIDs(int rawOffset)
      ミリ秒単位で指定されたタイムゾーン・オフセットと一致するIDで使用可能なものを取得します。
      パラメータ:
      rawOffset - ミリ秒単位で指定されたタイムゾーンのGMTオフセット。
      戻り値:
      IDの配列。配列内のIDのタイムゾーンは、指定されたGMTオフセットを持つ。 たとえば、「America/Phoenix」と「America/Denver」はどちらもGMT-07:00を持つが、夏時間の動作には違いがある。
      関連項目:
    • getAvailableIDs

      public static String[] getAvailableIDs()
      サポートされる利用可能なIDをすべて取得します。
      戻り値:
      IDの配列
    • getDefault

      public static TimeZone getDefault()
      Java仮想マシンのデフォルトのTimeZoneを取得します。 キャッシュされたデフォルトのTimeZoneが使用可能な場合は、そのクローンが返されます。 それ以外の場合、このメソッドは次のステップに従ってデフォルトのタイムゾーンを判定します。
      • user.timezoneプロパティの値が使用可能な場合は、それをデフォルトのタイムゾーンIDとして使用します。
      • プラットフォームのタイムゾーンIDを検出します。 プラットフォームのタイムゾーンとIDのマッピングのソースは、実装によって異なる場合があります。
      • 指定または検出されたタイムゾーンIDが不明の場合は、最後の手段としてGMTを使用します。

      このIDから作成されたデフォルトのTimeZoneがキャッシュされ、そのクローンが返されます。 復帰時に、user.timezoneプロパティの値はこのIDに設定されます。

      戻り値:
      デフォルトのTimeZone
      関連項目:
    • setDefault

      public static void setDefault(TimeZone zone)
      getDefaultメソッドで返されるTimeZoneを設定します。zoneはキャッシュされています。 zoneがnullの場合は、キャッシュされたデフォルトのTimeZoneがクリアされます。 このメソッドはuser.timezoneプロパティの値を変更しません。
      パラメータ:
      zone - 新しいデフォルトのTimeZone、またはnull
      例外:
      SecurityException - セキュリティ・マネージャのcheckPermissionPropertyPermission("user.timezone", "write")を拒否する場合
      関連項目:
    • hasSameRules

      public boolean hasSameRules(TimeZone other)
      このゾーンが比較される別のゾーンと同じルールとオフセットを持つ場合にtrueを返します。 つまり、このゾーンのIDだけが異なる場合にはtrueを返します。 ほかのゾーンがnullの場合はfalseを返します。
      パラメータ:
      other - 比較対象のTimeZoneオブジェクト
      戻り値:
      他のゾーンがnullで、このゾーンとID以外はまったく同じ場合はtrue
      導入されたバージョン:
      1.2
    • clone

      public Object clone()
      このTimeZoneのコピーを作成します。
      オーバーライド:
      clone、クラス: Object
      戻り値:
      このTimeZoneの複製
      関連項目: