函数
<ctime>

gmtime

struct tm * gmtime (const time_t * timer);
将 time_t 转换为 UTC 时间的 tm 结构
使用 timer 所指向的值来填充一个 tm 结构,其值表示相应的时间,以协调世界时 (UTC)(即格林威治标准时间时区的时间)表示。

关于本地时间的替代方案,请参见 localtime

参数

timer
指向 time_t 类型对象的指针,该对象包含一个时间值。
time_t 是一个基础算术类型的别名,能够表示由函数 time 返回的时间。

返回值

一个指向 tm 结构的指针,其成员已填充为与 timer 的 UTC 时间表示相对应的值。

返回的值指向一个内部对象,其有效性或值可能会被后续任何对 gmtimelocaltime 的调用所改变。

示例

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 指向的对象。
该函数还会访问并修改一个共享的内部对象,这可能在并发调用 gmtimelocaltime 时引入数据竞争。一些库提供了一个替代函数来避免这种数据竞争:gmtime_r(非可移植)。

异常 (C++)

无异常保证:此函数从不抛出异常。

另见