_tzset
设置时环境变量。
重要
此 API 不能在运行时的窗口执行的应用程序。有关更多信息,请参见 CRT 函数不支持与 /ZW。
void _tzset( void );
备注
_tzset 函数使用当前设置环境变量 TZ 赋值三个全局变量:_daylight、_timezone和 _tzname。 time 功能使用这些变量。_ftime 和 localtime 功能由协调世界时 (UTC) 进行更正到本地时间和计算从系统时间的 UTC。 使用以下语法设置 TZ 环境变量:
set TZ=tzn[+ | –]hh[:mm[:ss] ][dzn]
tzn
三个字母时区名称,例如 PST。 您必须指定从本地时间正确的偏移量 UTC。hh
区别在于 UTC 和本地时间之间的小时数。 符号 (+) 对于是可选的正值。mm
分钟。 从 hh 之间用冒号 (:)。ss
秒。 从 mm 之间用冒号 (:)。dzn
三个字母夏时制保存时区例如 PDT。 如果夏时制实际上不在该位置,设置 TZ,而无需 dzn的值。 C 运行库假定实现的夏时制 (DST) 的计算美国的规则。
备注
要在计算时差的符号。由于时差是从本地时间的 UTC 偏移量 (而不是相反) 时,其符号可能是什么的相反值可能需要直观。对于早于 UTC 的时区,时差为负;对于某些晚于 UTC,差别是一样的。
例如,设置 TZ 环境变量对应于当前时区在德语,输入以下命令行:
set TZ=GST-1GDT
此命令使用 GST 指示德语标准时间,假定,UTC 是在德语后面的一小时 (换言之,或该德语是早于 UTC 的小时数),并假定,德语观察夏时制保存时。
如果 TZ 值未设置,_tzset 尝试使用操作系统指定时区的信息。 在 windows 操作系统中,此信息在日期/时间应用程序"控制面板"中指定。 如果 _tzset 无法获取此信息,默认情况下它使用 PST8PDT,表示所产生的字符串。
当 _tzset 调用时,根据 TZ 环境变量的值,下面的值赋给全局变量 _daylight、_timezone和 _tzname :
全局变量 |
描述 |
默认值 |
---|---|---|
_daylight |
非零值,如果夏时制保存时区在 TZ 设置指定;否则,0。 |
1 |
_timezone |
差异在本地时间与 UTC 之间的秒。 |
28800 (28800 秒等于 8 小时) |
_tzname[0] |
该时区的名称的字符串值以 TZ 环境变量的;,如果 TZ 未设置,则为。 |
PST |
_tzname[1] |
夏时制保存时区的字符串值;,如果夏时制保存时区从 TZ 环境变量,则省略则为。 |
PDT |
在 _daylight 的前面表中显示的默认值和 _tzname 数组对应于“PST8PDT”。如果 DST 区域中 TZ 环境变量被省略,_daylight 的值为 0,并 _ftime、gmtime和 localtime 函数返回 0 其 DST 标志的。
要求
实例 |
必需的标头 |
---|---|
_tzset |
<time.h> |
有关更多信息,请参见 兼容性。
示例
// 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 );
}
.NET Framework 等效项
不适用。若要调用标准 C 函数,请使用 PInvoke。有关更多信息,请参见 平台调用示例。