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の構文は次の通りです。
Hoursは0 - 23で、Minutesは00 - 59を指定する必要があります。 たとえば、「GMT+10」と「GMT+0010」は、それぞれ、GMTより10時間および10分進んだ時間になります。CustomID:GMT
Sign Hours:
MinutesGMT
Sign Hours MinutesGMT
Sign Hours Sign: one of+ -
Hours: Digit Digit Digit Minutes: Digit Digit Digit: one of0 1 2 3 4 5 6 7 8 9
フォーマットはロケールに依存せず、数字はUnicode標準のBasic Latinブロックの数字である必要があります。 サマー・タイムへの移行スケジュールは、カスタム・タイムゾーンIDでは指定できません。 指定された文字列が構文と一致しない場合は、"GMT"
が使用されます。
TimeZone
を作成するときは、指定されたカスタム・タイムゾーンIDは、次の構文で正規化されます。
たとえば、TimeZone.getTimeZone("GMT-8").getID()はGMT-08:00を返します。NormalizedCustomID:GMT
Sign TwoDigitHours:
Minutes Sign: one of+ -
TwoDigitHours: Digit Digit Minutes: Digit Digit Digit: one of0 1 2 3 4 5 6 7 8 9
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) |
指定された
zoneId のTimeZone を取得します。 |
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 が夏時間を使用するかどうかを問い合わせます。 |
public abstract int getOffset(int era, int year, int month, int day, int dayOfWeek, int milliseconds)
基本となるTimeZone
実装サブクラスが、夏時間スケジュールとGMTオフセットの歴史的変化をサポートする場合、このメソッドは歴史的に正確なオフセットを返します。
era
- 指定する日付の年号。year
- 指定する日付の年。month
- 指定する日付の月。 月は 0 から始まる。 0 が 1 月 day
- 指定する日付の日。dayOfWeek
- 指定する日付の曜日。milliseconds
- 標準ローカル・タイムでの、指定された日のミリ秒。Calendar.ZONE_OFFSET
, Calendar.DST_OFFSET
public int getOffset(long date)
基本となるTimeZone実装サブクラスが、夏時間スケジュールとGMTオフセットの歴史的変化をサポートする場合、このメソッドは歴史的に正確なオフセット値を返します。
date
- 1970年1月1日00:00:00 GMTからの、ミリ秒単位で表された日付。Calendar.ZONE_OFFSET
, Calendar.DST_OFFSET
public abstract void setRawOffset(int offsetMillis)
基盤となるTimeZone
実装サブクラスが、GMTオフセットの歴史的変化をサポートする場合、指定されたGMTオフセットが最新のGMTオフセットとして設定され、既知の最新GMTオフセット値との差を使用して、歴史上のすべてのGMTオフセット値が調整されます。
offsetMillis
- 指定されたGMTへのベース・タイムゾーン・オフセットpublic abstract int getRawOffset()
基本となるTimeZone
実装サブクラスがGMTオフセットの歴史的変化をサポートする場合、メソッドは現在の日付の直接計算されたオフセット値を返します。 たとえばホノルルでは、1947年に直接計算されたオフセットがGMT-10:30からGMT-10:00に変更したので、このメソッドは常に -36000000ミリ秒(つまり -10時間)を返します。
Calendar.ZONE_OFFSET
public String getID()
public void setID(String ID)
ID
- 新しいタイムゾーンID。public final String getDisplayName()
TimeZone
の標準時の長い名前を返します。
このメソッドは、次と同等です。
getDisplayName(false,LONG
, Locale.getDefault(Locale.Category.DISPLAY
))
getDisplayName(boolean, int, Locale)
, Locale.getDefault(Locale.Category)
, Locale.Category
public final String getDisplayName(Locale locale)
locale
でのユーザーへの表示に適した、このTimeZone
の標準時の長い名前を返します。
このメソッドは、次と同等です。
getDisplayName(false,LONG
, locale)
locale
- 表示名を提供する際に使われるロケール。NullPointerException
- locale
がnull
の場合。getDisplayName(boolean, int, Locale)
public final String getDisplayName(boolean daylight, int style)
TimeZone
の指定されたstyle
での名前を返します。 指定されたdaylight
がtrue
の場合は、夏時間の名前が返されます(このTimeZone
が夏時間に従わない場合でも)。 それ以外の場合は、標準時の名前が返されます。
このメソッドは、次と同等です。
getDisplayName(daylight, style, Locale.getDefault(Locale.Category.DISPLAY
))
daylight
- 夏時間の名前を示すtrue
、または標準時の名前を示すfalse
style
- LONG
またはSHORT
IllegalArgumentException
- style
が無効である場合getDisplayName(boolean, int, Locale)
, Locale.getDefault(Locale.Category)
, Locale.Category
, DateFormatSymbols.getZoneStrings()
public String getDisplayName(boolean daylight, int style, Locale locale)
locale
でのユーザーへの表示に適した、このTimeZone
の指定されたstyle
での名前を返します。 指定されたdaylight
がtrue
の場合は、夏時間の名前が返されます(このTimeZone
が夏時間に従わない場合でも)。 それ以外の場合は、標準時の名前が返されます。
タイムゾーン名の検索時は、指定されたlocale
から導かれたデフォルトのResourceBundle
のLocale
検索パスが使用されます。 (フォール・バックLocale
の検索は行われません。) 検索パスのいずれかのLocale
(Locale.ROOT
も含む)にタイムゾーン名が見つかった場合は、その名前が返されます。 それ以外の場合は、正規化されたカスタムID形式の文字列が返されます。
daylight
- 夏時間の名前を示すtrue
、または標準時の名前を示すfalse
style
- LONG
またはSHORT
locale
- 表示名を提供する際に使われるロケール。IllegalArgumentException
- style
が無効である場合NullPointerException
- locale
がnull
の場合。DateFormatSymbols.getZoneStrings()
public int getDSTSavings()
useDaylightTime()
の呼出しがtrue
を返す場合、デフォルト実装は3600000ミリ秒(つまり1時間)を返します。 そうでない場合は、0を返します。
基本となるTimeZone
実装サブクラスが、夏時間スケジュールの歴史的および将来の変化をサポートする場合、このメソッドは既知の最新夏時間ルールの夏時間量を返します。このルールは将来に予測されるものです。
特定のタイムスタンプにおける夏時間量が必要な場合は、このTimeZone
とタイムスタンプを使用してCalendar
を構築し、Calendar.get
(
Calendar.DST_OFFSET
)
を呼び出します。
inDaylightTime(Date)
, getOffset(long)
, getOffset(int,int,int,int,int,int)
, Calendar.ZONE_OFFSET
public abstract boolean useDaylightTime()
TimeZone
が夏時間を使用するかどうかを問い合わせます。
基本となるTimeZone
実装サブクラスが、夏時間スケジュールの歴史的および将来の変化をサポートする場合、このメソッドは既知の最新夏時間ルールを参照します。このルールは将来に予測されるものであり、現在のルールとは異なる場合があります。 現在のルールも考慮する必要がある場合は、observesDaylightTime()
を呼び出すようにしてください。
TimeZone
が夏時間を使用する場合はtrue
、それ以外の場合はfalse
。inDaylightTime(Date)
, Calendar.DST_OFFSET
public boolean observesDaylightTime()
TimeZone
が現在夏時間の期間内にある場合、または標準時間から夏時間への移行が今後行われる場合にtrue
を返します。
useDaylightTime()
またはinDaylightTime(new Date())
がtrue
を返す場合、デフォルト実装はtrue
を返します。
TimeZone
が現在夏時間の期間内にある場合、または標準時間から夏時間への移行が今後行われる場合はtrue
。それ以外の場合はfalse
。useDaylightTime()
, inDaylightTime(Date)
, Calendar.DST_OFFSET
public abstract boolean inDaylightTime(Date date)
date
が、このタイムゾーンでは夏時間の期間内かどうかを問い合わせます。date
- 指定されたDatetrue
、そうでない場合はfalse
。public static TimeZone getTimeZone(String ID)
TimeZone
を取得します。ID
- TimeZone
のID。「PST」のような短縮形式、「America/Los_Angeles」のような完全な名前、あるいは「GMT-8:00」のようなカスタムIDのどれか。 短縮形式は、JDK 1.1.xとの互換性のためだけにサポートされているため、完全な名前を使用する必要がある TimeZone
。指定されたIDを認識できない場合はGMTゾーン。public static TimeZone getTimeZone(ZoneId zoneId)
zoneId
のTimeZone
を取得します。zoneId
- タイムゾーンIDの取得元となるZoneId
TimeZone
。指定されたIDを認識できない場合はGMTゾーン。NullPointerException
- zoneId
がnull
である場合public ZoneId toZoneId()
TimeZone
オブジェクトをZoneId
に変換します。TimeZone
と同じタイムゾーンを表すZoneId
public static String[] getAvailableIDs(int rawOffset)
rawOffset
- ミリ秒単位で指定されたタイムゾーンのGMTオフセット。getRawOffset()
public static String[] getAvailableIDs()
public static TimeZone getDefault()
TimeZone
を取得します。 キャッシュされたデフォルトのTimeZone
が使用可能な場合は、そのクローンが返されます。 それ以外の場合、このメソッドは次のステップに従ってデフォルトのタイムゾーンを判定します。
user.timezone
プロパティの値が使用可能な場合は、それをデフォルトのタイムゾーンIDとして使用します。GMT
を使用します。このIDから作成されたデフォルトのTimeZone
がキャッシュされ、そのクローンが返されます。 復帰時に、user.timezone
プロパティの値はこのIDに設定されます。
TimeZone
setDefault(TimeZone)
public static void setDefault(TimeZone zone)
getDefault
メソッドで返されるTimeZone
を設定します。zone
はキャッシュされています。 zone
がnullの場合は、キャッシュされたデフォルトのTimeZone
がクリアされます。 このメソッドはuser.timezone
プロパティの値を変更しません。 zone
- 新しいデフォルトのTimeZone
、またはnullSecurityException
- セキュリティ・マネージャのcheckPermission
がPropertyPermission("user.timezone", "write")
を拒否する場合getDefault()
, PropertyPermission
public boolean hasSameRules(TimeZone other)
other
- 比較対象のTimeZone
オブジェクト バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。