_tzset_tzset

時間環境変数を設定します。Sets time environment variables.

重要

この API は、Windows ランタイムで実行するアプリケーションでは使用できません。This API cannot be used in applications that execute in the Windows Runtime. 詳細については、「ユニバーサル Windows プラットフォーム アプリでサポートされていない CRT 関数」を参照してください。For more information, see CRT functions not supported in Universal Windows Platform apps.

構文Syntax

void _tzset( void );

RemarksRemarks

_Tzset関数は、環境変数TZの現在の設定を使用して、3つのグローバル変数に値を割り当てます。The _tzset function uses the current setting of the environment variable TZ to assign values to three global variables: _daylight, _timezone, and _tzname. これらの変数は、世界協定時刻 (UTC) から現地時刻への修正を行うために、 _ftime関数とlocaltime関数によって使用されます。また、時刻関数によってシステム時刻から UTC を計算するために使用されます。These variables are used by the _ftime and localtime functions to make corrections from coordinated universal time (UTC) to local time, and by the time function to compute UTC from system time. TZ環境変数を設定するには、次の構文を使用します。Use the following syntax to set the TZ environment variable:

SET TZ = tzn|] hh:mm[: ss]] [dzn][ [ + -set TZ=tzn [+|-]hh[:mm[:ss] ][dzn]

パラメーターParameter 説明Description
tzntzn PST など、3 文字のタイム ゾーンの名前。Three-letter time-zone name, such as PST. 現地時刻から UTC への適切なオフセットを指定する必要があります。You must specify the correct offset from local time to UTC.
hhhh UTC と現地時刻の時差。Difference in hours between UTC and local time. 正の値のための符号 (+) オプション。Sign (+) optional for positive values.
mmmm 分。Minutes. Hhからコロン ( : ) で区切られます。Separated from hh by a colon (:).
ssss 秒。Seconds. Mmからコロン ( : ) で区切られます。Separated from mm by a colon (:).
dzndzn PDT など、3 文字の夏時間のタイム ゾーン。Three-letter daylight-saving-time zone such as PDT. 地域で夏時間が適用されない場合は、 dznの値を指定せずにTZを設定します。If daylight saving time is never in effect in the locality, set TZ without a value for dzn. C ランタイム ライブラリでは、アメリカ合衆国の規則を前提に夏時間 (DST) を計算します。The C run-time library assumes the United States' rules for implementing the calculation of daylight saving time (DST).

注意

計算時には時差の符号に注意してください。Take care in computing the sign of the time difference. 時差は現地時刻から UTC に変換する場合のオフセットである (逆ではない) であるため、符号は直感的に考えるものとは逆である場合があります。Because the time difference is the offset from local time to UTC (rather than the reverse), its sign may be the opposite of what you might intuitively expect. UTC より早いタイム ゾーンの場合、時差は負になります。UTC より遅い場合、時差は正になります。For time zones ahead of UTC, the time difference is negative; for those behind UTC, the difference is positive.

たとえば、 TZ環境変数をドイツの現在のタイムゾーンに対応するように設定するには、コマンドラインで次のように入力します。For example, to set the TZ environment variable to correspond to the current time zone in Germany, enter the following on the command line:

set TZ = GST-1GDTset TZ=GST-1GDT

このコマンドは、GST によってドイツの標準時刻であることを示し、UTC がドイツの時刻よりも 1 時間遅い (またはドイツは UTC より 1 時間早い) と想定し、さらにドイツでは夏時間が採用されていると想定しています。This command uses GST to indicate German standard time, assumes that UTC is one hour behind Germany (or in other words, that Germany is one hour ahead of UTC), and assumes that Germany observes daylight-saving time.

TZ値が設定されていない場合、 _tzsetはオペレーティングシステムによって指定されたタイムゾーン情報を使用しようとします。If the TZ value is not set, _tzset attempts to use the time zone information specified by the operating system. Windows オペレーティング システムの場合、この情報は [コントロール パネル] の [日付/時刻] で指定します。In the Windows operating system, this information is specified in the Date/Time application in Control Panel. _Tzsetがこの情報を取得できない場合、既定で PST8PDT が使用されます。これは、太平洋標準時ゾーンを表します。If _tzset cannot obtain this information, it uses PST8PDT by default, which signifies the Pacific Time zone.

TZ環境変数の値に基づいて、 _tzsetが呼び出されたときに、次の値がグローバル変数 ( _tzname) に割り当てられます。Based on the TZ environment variable value, the following values are assigned to the global variables _daylight, _timezone, and _tzname when _tzset is called:

グローバル変数Global variable 説明Description 既定値Default value
夏時間 (_c)_daylight TZ設定で夏時間のタイムゾーンが指定されている場合は0以外の値それ以外の場合は0です。Nonzero value if a daylight-saving-time zone is specified in TZ setting; otherwise, 0. 11
_timezone_timezone 現地時刻と UTC の秒単位での時差。Difference in seconds between local time and UTC. 28800 (28800 秒は 8 時間に相当)28800 (28800 seconds equals 8 hours)
_tzname0_tzname[0] TZ環境変数からのタイムゾーン名の文字列値です。TZが設定されていない場合は空です。String value of time-zone name from TZ environmental variable; empty if TZ has not been set. PSTPST
_tzname1_tzname[1] 夏時間のタイムゾーンの文字列値。TZ環境変数から夏時間のタイムゾーンが省略されている場合は空です。String value of daylight-saving-time zone; empty if daylight-saving-time zone is omitted from TZ environmental variable. PDTPDT

上記の表では、夏時間_tzname配列の既定値は "PST8PDT" に対応しています。The default values shown in the preceding table for _daylight and the _tzname array correspond to "PST8PDT." DST ゾーンがTZ環境変数から省略されている場合、夏時間の値は0で、 _ftimegmtime、およびlocaltimeの各関数は、それぞれの dst フラグに対して0を返します。If the DST zone is omitted from the TZ environmental variable, the value of _daylight is 0 and the _ftime, gmtime, and localtime functions return 0 for their DST flags.

必要条件Requirements

ルーチンによって返される値Routine 必須ヘッダーRequired header
_tzset_tzset <time.h><time.h>

_Tzset関数は、Microsoft 固有の関数です。The _tzset function is Microsoft-specific. 詳細については、「 互換性」を参照してください。For more information, see Compatibility.

Example

// 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

関連項目See also

時間管理Time Management
asctime、_wasctimeasctime, _wasctime
_ftime、_ftime32、_ftime64_ftime, _ftime32, _ftime64
gmtime、_gmtime32、_gmtime64gmtime, _gmtime32, _gmtime64
localtime、_localtime32、_localtime64localtime, _localtime32, _localtime64
time、_time32、_time64time, _time32, _time64
_utime、_utime32、_utime64、_wutime、_wutime32、_wutime64_utime, _utime32, _utime64, _wutime, _wutime32, _wutime64