函数
<ctime>
gmtime
struct tm * gmtime (const time_t * timer);
将 time_t 转换为 UTC 时间的 tm 结构
使用 timer 所指向的值来填充一个 tm 结构,其值表示相应的时间,以协调世界时 (UTC)(即格林威治标准时间时区的时间)表示。
关于本地时间的替代方案,请参见 localtime。
返回值
一个指向 tm 结构的指针,其成员已填充为与 timer 的 UTC 时间表示相对应的值。
返回的值指向一个内部对象,其有效性或值可能会被后续任何对 gmtime 或 localtime 的调用所改变。
示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
/* gmtime example */
#include <stdio.h> /* puts, printf */
#include <time.h> /* time_t, struct tm, time, gmtime */
#define MST (-7)
#define UTC (0)
#define CCT (+8)
int main ()
{
time_t rawtime;
struct tm * ptm;
time ( &rawtime );
ptm = gmtime ( &rawtime );
puts ("Current time around the World:");
printf ("Phoenix, AZ (U.S.) : %2d:%02d\n", (ptm->tm_hour+MST)%24, ptm->tm_min);
printf ("Reykjavik (Iceland) : %2d:%02d\n", (ptm->tm_hour+UTC)%24, ptm->tm_min);
printf ("Beijing (China) : %2d:%02d\n", (ptm->tm_hour+CCT)%24, ptm->tm_min);
return 0;
}
|
输出
Current time around the World:
Phoenix, AZ (U.S.) : 8:22
Reykjavik (Iceland) : 15:22
Beijing (China) : 23:22
|
数据竞争
该函数访问由 timer 指向的对象。
该函数还会访问并修改一个共享的内部对象,这可能在并发调用 gmtime 和 localtime 时引入数据竞争。一些库提供了一个替代函数来避免这种数据竞争:gmtime_r(非可移植)。
异常 (C++)
无异常保证:此函数从不抛出异常。