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, 2020, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。