gmtime
函数 <ctime>
struct tm * gmtime (const time_t * timer);
将time_t转换为tm作为UTC时间
使用timer指向的表示相应的时间的值来填充tm结构,表示为UTC时间(即GMT时区的时间)。
有关本地时间的替代方法,请参见
localtime。
☲ 参数
timer
指向包含时间值的time_t类型对象的指针。
time_t是基本算术类型的别名,能够表示由函数time返回的时间。
☉ 返回值
一个指向
tm结构的指针,其成员中填充了与timer的UTC时间表示相对应的值。
返回值指向一个内部对象,该对象的有效性或值可能会被随后调用
gmtime或
asctime所更改。
☣ 示例
/* 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和
asctime的并发调用中引入数据竞争。
一些库提供了避免这种数据竞争的替代函数:gmtime_r(不可移植)。
❆ 异常(c++)
无抛出保证:此函数从不抛出异常。
🍄 另请参阅