gmtime, _gmtime32, _gmtime64

转换时间值为结构。这些功能的更安全版本可用; gmtime_s, _gmtime32_s, _gmtime64_s参见。

struct tm *gmtime( 
   const time_t *timer 
);
struct tm *_gmtime32( 
   const time32_t *timer 
);
struct tm *_gmtime64( 
   const __time64_t *timer 
);

参数

  • timer
    为内存的指针。时间表示为秒自午夜 (00:00 elapsed: 00), 1970 年一月 1 日,世界 (UTC)时 (utc)。

返回值

返回指向的指针类型 tm结构。返回的结构的字段表示 timer 参数的计算的值 UTC 的而不是在本地时间。每个结构字段是类型 int,如下所示:

  • tm_sec
    秒数分钟 (0 – 59) 之后。

  • tm_min
    分钟数小时 (0 – 59) 之后。

  • tm_hour
    小时数自午夜 (0 – 23)。

  • tm_mday
    日期月份 (1 – 31)。

  • tm_mon
    月份 (0 – 11;一月 = 0)。

  • tm_year
    年份 (减号 1900 的当前年份)。

  • tm_wday
    每周日期 (0 – 6;sunday = 0)。

  • tm_yday
    日、 (0 – 365;一月 1 日 = 0 日)。

  • tm_isdst
    始终 0 gmtime的。

gmtime、 mktime、 mkgmtime和 localtime所有的 32 位和 64 位版本为将使用一个 tm 结构每个线程。每次调用这些函数之一销毁结果的所有以前的调用。如果 timer 午夜之前表示日期, 1970 年一月 1 日, gmtime 返回 NULL。无错误返回。

_gmtime64,使用 __time64_t 结构,允许日期下午 23:59 表示: 59, 3000 年十二月 31 日,, UTC,,而 _gmtime32 下午 03:14 只表示日期: 一月 07 日 19 日 2038 中, UTC。午夜, 1970 年一月 1 日,是日期范围的下限这些功能的。

gmtime 是计算结果为 _gmtime64 ,并 time_t 与 __time64_t等效的内联函数。如果需要强制编译器解释 time_t 为旧 32 位 time_t,可以定义 _USE_32BIT_TIME_T。这样做将导致 gmtime 联机获取对 _gmtime32。建议不要这样做,因为应用程序可以在 2038 年一月 18 日之后,失败,并且在 64 位平台不允许的。

这些功能验证其参数。如果 timer 是 null 指针,或者,如果计时器值为负,这些函数调用无效参数处理程序,如 参数验证所述。如果执行允许继续,函数返回 NULL 并将 errno 到 EINVAL。

备注

_gmtime32 功能在类型 tm静态分配的结构分区 timer 值并将其存储,定义在 TIME.H。timer 的值在调用通常获取到 time 功能。

说明说明

目标环境应尝试确定夏时制时间是否有效。C 运行库假定实现的夏时制的计算美国规则 (DST)。

要求

实例

必需的头

gmtime

time.h

_gmtime32

time.h

_gmtime64

time.h

有关其他的兼容性信息,请参见中介绍的 兼容性

示例

// crt_gmtime.c
// compile with: /W3
// This program uses _gmtime64 to convert a long-
// integer representation of coordinated universal time
// to a structure named newtime, then uses asctime to
// convert this structure to an output string.
 
#include <time.h>
#include <stdio.h>

int main( void )
{
   struct tm *newtime;
   __int64 ltime;
   char buff[80];

   _time64( &ltime );

   // Obtain coordinated universal time:
   newtime = _gmtime64( &ltime ); // C4996
   // Note: _gmtime64 is deprecated; consider using _gmtime64_s
   asctime_s( buff, sizeof(buff), newtime );
   printf( "Coordinated universal time is %s\n", buff );
}
  

.NET Framework 等效项

请参见

参考

时间线

asctime, _wasctime

ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64

_ftime, _ftime32, _ftime64

gmtime_s, _gmtime32_s, _gmtime64_s

localtime, _localtime32, _localtime64

_mkgmtime, _mkgmtime32, _mkgmtime64

mktime, _mktime32, _mktime64

time, _time32, _time64