TimeZone クラス
名前空間
使用方法
このクラスのメソッドを使用して、UserInfo.getTimeZone から返されるタイムゾーンまたはこのクラスの getTimeZone から返されるタイムゾーンのプロパティなど、タイムゾーンのプロパティを取得できます。
例
この例では、現在のユーザーのタイムゾーンのプロパティを取得し、それをデバッグログに表示する方法を示します。
1TimeZone tz = UserInfo.getTimeZone();
2System.debug('Display name: ' + tz.getDisplayName());
3System.debug('ID: ' + tz.getID());
4// During daylight saving time for the America/Los_Angeles time zone
5System.debug('Offset: ' + tz.getOffset(DateTime.newInstance(2012,10,23,12,0,0)));
6// Not during daylight saving time for the America/Los_Angeles time zone
7System.debug('Offset: ' + tz.getOffset(DateTime.newInstance(2012,11,23,12,0,0)));
8System.debug('String format: ' + tz.toString());このサンプルの出力は、ユーザーのタイムゾーンによって異なります。ユーザーのタイムゾーンが America/Los_Angeles の場合の出力例を次に示します。このタイムゾーンの場合、夏時間は GMT から -7 時間 (-25200000 ミリ秒) であり、標準時間は GMT から -8 時間 (-28800000 ミリ秒) です。
Display name: Pacific Standard TimeID: America/Los_Angeles
Offset: -25200000
Offset: -28800000
String format: America/Los_Angeles
2 番目の例では、New York のタイムゾーンを作成し、GMT タイムゾーンに対するこのタイムゾーンのオフセットを取得する方法を示します。この例は、オフセットを取得するために 2 つの日付を使用します。1 つの日付は DST (夏時間) 前、もう 1 つの日付は DST 後です。2000 年の夏時間は、New York タイムゾーンの 10 月 29 日、日曜日に終了しました。最初の日付は夏時間後であるため、最初の日付のオフセットは GMT に対して –5 時間です。2012 年の夏時間は、11 月 4 日、日曜日に終了しました。2 番目の日付は夏時間中であるため、2 番目の日付のオフセットは –4 時間です。
1// Get the New York time zone
2Timezone tz = Timezone.getTimeZone('America/New_York');
3
4// Create a date before the 2007 shift of DST into November
5DateTime dtpre = DateTime.newInstanceGMT(2000, 11, 1, 0, 0, 0);
6system.debug(tz.getOffset(dtpre)); //-18000000 (= -5 hours = EST)
7
8// Create a date after the 2007 shift of DST into November
9DateTime dtpost = DateTime.newInstanceGMT(2012, 11, 1, 0, 0, 0);
10system.debug(tz.getOffset(dtpost)); //-14400000 (= -4 hours = EDT)次の例は前の例と似ていますが、夏時間の境界周辺でオフセットを取得しています。2014 年の夏時間は、New York タイムゾーンの 11 月 2 日、日曜日午前 2 時に終了しました。最初のオフセットは夏時間の終了直前に取得され、2 番目のオフセットは夏時間の終了直後に取得されています。日付は DateTime.newInstanceGMT メソッドを使用して作成されます。このメソッドは、渡される日付値が GMT タイムゾーンに基づくことを前提としています。
1// Get the New York time zone
2Timezone tz = Timezone.getTimeZone('America/New_York');
3
4// Before DST ends
5DateTime dtpre = DateTime.newInstanceGMT(2014, 11, 2, 5, 59, 59); //1:59:59AM local EDT
6system.debug(tz.getOffset(dtpre)); //-14400000 (= -4 hours = still on DST)
7
8// After DST ends
9DateTime dtpost = DateTime.newInstanceGMT(2014, 11, 2, 6, 0, 0); //1:00:00AM local EST
10system.debug(tz.getOffset(dtpost)); //-18000000 (= -5 hours = back one hour)TimeZone のメソッド
TimeZone のメソッドは次のとおりです。
getDisplayName()
署名
public String getDisplayName()
戻り値
型: String
バージョン管理動作の変更
API バージョン 45.0 以降では、夏時間が有効である場合、getDisplayName で夏時間が適切���表示されます。たとえば、ヨーロッパ/ロンドンでは英国夏時間が表示され、米国/ロサンゼルスでは太平洋夏時間が表示されます。
getTimeZone(timeZoneIdString)
署名
public static TimeZone getTimeZone(String timeZoneIdString)
パラメーター
- timeZoneIdString
- 型: String
- Id 引数に使用できるタイムゾーン値は、Java TimeZone クラスでサポートされる有効なタイムゾーン値です。
戻り値
型: TimeZone
例
1TimeZone tz = TimeZone.getTimeZone('America/Los_Angeles');
2String tzName = tz.getDisplayName();
3System.assert(tzName.equals('(GMT-08:00) Pacific Standard Time (America/Los_Angeles)') ||
4 tzName.equals('(GMT-07:00) Pacific Daylight Time (America/Los_Angeles)'));