モジュール 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
関連項目:
Calendar, GregorianCalendar, SimpleTimeZone, 直列化された形式
  • フィールドのサマリー

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

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

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

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

    equalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait
  • フィールド詳細

    • SHORT

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

      public static final int LONG
      「Pacific Standard Time」などの長い名前を示す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 から始まる。 0 が 1 月
      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。
    • 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)
      指定されたlocaleでのユーザーへの表示に適した、このTimeZoneの標準時の長い名前を返します。

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

       getDisplayName(false, LONG, locale)
       

      パラメータ:
      locale - 表示名を提供する際に使われるロケール。
      戻り値:
      指定されたロケールでの現在のタイムゾーンを、人が理解できる形式にした名前
      例外:
      NullPointerException - localenullの場合。
      導入されたバージョン:
      1.2
      関連項目:
      getDisplayName(boolean, int, Locale)
    • 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(boolean, int, Locale), Locale.getDefault(Locale.Category), Locale.Category, DateFormatSymbols.getZoneStrings()
    • getDisplayName

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

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

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

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

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

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

      特定のタイムスタンプにおける夏時間量が必要な場合は、この TimeZoneとタイムスタンプを使用してCalendarを構築し、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()を呼び出すようにしてください。

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

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

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

      戻り値:
      このTimeZoneが現在夏時間の期間内にある場合、または標準時間から夏時間への移行が今後行われる場合はtrue。それ以外の場合はfalse
      導入されたバージョン:
      1.7
      関連項目:
      useDaylightTime(), inDaylightTime(Date), Calendar.DST_OFFSET
    • 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を持つが、夏時間の動作には違いがある。
      関連項目:
      getRawOffset()
    • 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(TimeZone)
    • setDefault

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