_tzset
時間環境変数を設定します。
重要
この API は、Windows ランタイムで実行するアプリケーションでは使用できません。 詳細については、「ユニバーサル Windows プラットフォーム アプリでサポートされていない CRT 関数」を参照してください。
構文
void _tzset( void );
解説
_tzset
関数は環境変数 TZ
の現在の設定を使用して、 _daylight
、 _timezone
、および _tzname
の 3 つのグローバル変数に値を代入します。 これらの変数は、協定世界時 (UTC) から現地時刻への修正を行うために _ftime
関数と localtime
関数によって使用され、システム時刻から UTC を計算する time
関数によって使用されます。 TZ
環境変数を設定するには、次の構文を使用します。
set TZ=
tzn
[+
|-
]hh
[:
mm
[:ss
] ][dzn
]
tzn
PST など、3 文字のタイム ゾーンの名前。 現地時刻から UTC への適切なオフセットを指定する必要があります。
hh
UTC と現地時刻の時差。 正の値のための符号 (+) オプション。
mm
分。 コロン ( hh
) で:
との間を区切ります。
ss
秒。 コロン ( mm
) で:
との間を区切ります。
dzn
PDT など、3 文字の夏時間のタイム ゾーン。 その地域で夏時間が実施されていない場合は、 TZ
の値を指定しないで dzn
を設定します。 C ランタイム ライブラリでは、アメリカ合衆国の規則を前提に夏時間 (DST) を計算します。
Note
計算時には時差の符号に注意してください。 時差は現地時刻から UTC に変換する場合のオフセットである (逆ではない) であるため、符号は直感的に考えるものとは逆である場合があります。 UTC より早いタイム ゾーンの場合、時差は負になります。UTC より遅い場合、時差は正になります。
たとえば、 TZ
環境変数をドイツの現在のタイム ゾーンに対応するように設定するには、コマンド ラインで次のコマンドを入力します。
set TZ=GST-1GDT
このコマンドは、GST を使用してドイツ標準時を示します。 これは、UTC がドイツより 1 時間遅れている (つまり、ドイツが UTC より 1 時間早い) ことを前提としています。 そして、ドイツは夏時間を観察することを前提としています。
TZ
値が設定されていない場合、_tzset
はオペレーティング システムで指定されたタイム ゾーン情報の使用を試みます。 Windows オペレーティング システムの場合、この情報は [コントロール パネル] の [日付/時刻] で指定します。 この情報 _tzset
取得できない場合は、既定でPST8PDTが使用されます。これは太平洋タイム ゾーンを示します。
TZ
が呼び出されると、 _daylight
の環境変数の値に基づいて、次の値がグローバル変数 _timezone
、 _tzname
、および _tzset
に代入されます。
グローバル変数 | 説明 | 規定値 |
---|---|---|
_daylight |
夏時間のタイム ゾーンが TZ の設定で指定されている場合は 0 以外の値、指定されていない場合は 0。 |
1 |
_timezone |
現地時刻と UTC の秒単位での時差。 | 28800 (28,800 秒は 8 時間) |
_tzname[0] |
環境変数からのタイム ゾーン名の文字列値 TZ 。 TZ が設定されていない場合は空です。 |
PST |
_tzname[1] |
夏時間のタイム ゾーンの文字列値。 TZ の環境変数の値に夏時間のタイム ゾーンが含まれていない場合は空。 |
PDT |
_daylight
と_tzname
配列の前の表に示した既定値は、"PST8PDT" に対応しています。DST ゾーンをTZ
環境変数から省略すると、_daylight
の値は 0 になり、_ftime
、gmtime
、localtime
関数は DST フラグに対して 0 を返します。
既定では、この関数のグローバル状態の適用対象は、アプリケーションになります。 この動作を変更するには、「CRT でのグローバル状態」を参照してください。
要件
ルーチンによって返される値 | 必須ヘッダー |
---|---|
_tzset |
<time.h> |
_tzset
関数は Microsoft 固有です。 詳細については、「互換性」をご覧ください。
例
// crt_tzset.cpp
// This program uses _tzset to set the global variables
// named _daylight, _timezone, and _tzname. Since TZ is
// not being explicitly set, it uses the system time.
#include <time.h>
#include <stdlib.h>
#include <stdio.h>
int main( void )
{
_tzset();
int daylight;
_get_daylight( &daylight );
printf( "_daylight = %d\n", daylight );
long timezone;
_get_timezone( &timezone );
printf( "_timezone = %ld\n", timezone );
size_t s;
char tzname[100];
_get_tzname( &s, tzname, sizeof(tzname), 0 );
printf( "_tzname[0] = %s\n", tzname );
exit( 0 );
}
_daylight = 1
_timezone = 28800
_tzname[0] = Pacific Standard Time
関連項目
時間管理
asctime
, _wasctime
_ftime
、 _ftime32
、 _ftime64
gmtime
、 _gmtime32
、 _gmtime64
localtime
、 _localtime32
、 _localtime64
time
、 _time32
、 _time64
_utime
、 _utime32
、 _utime64
、 _wutime
、 _wutime32
、 _wutime64