概述
在头文件中定义struct tm * gmtime(const time_t * time);(1)
struct tm * gmtime_s(const time_t *限制时间,struct tm *限制结果);(2)(自C11以来)
1)将历元以来的给定时间(time_t指向的值time)转换为日历时间,以结构tm格式中的协调世界时(UTC)表示。结果存储在静态存储器中,并返回指向该静态存储器的指针。
2)与(1)相同,只是该函数使用用户提供的存储result结果,并且在运行时检测到以下错误并调用当前安装的约束处理函数:
time或者result是空指针
与所有边界检查的函数一样,gmtime_s只有__STDC_LIB_EXT1__在实现定义并且用户在包含之前定义__STDC_WANT_LIB_EXT1__为整数常量时1才能保证可用time.h。
参数
时间-指向要转换的time_t对象的指针结果-指向结构tm对象来存储结果的指针
返回值
1)tm成功时指向静态内部对象的指针,否则为空指针。该结构可以在gmtime,localtime和之间共享,ctime并且可以在每次调用时被覆盖。
2)result指针的副本或错误上的空指针(可能是运行时约束违规或未能将指定时间转换为UTC)
笔记
这个函数gmtime可能不是线程安全的。
如果由于参数太大而导致失败,POSIX要求此函数设置errno为EOVERFLOW。
POSIX定义了一个线程安全的替代gmtime_r,它与C11函数类似gmtime_s,只是它不检查其输入参数的有效性。
例
#define __STDC_WANT_LIB_EXT1__ 1#include #include
int main(void){
time_t t = time(NULL); printf("UTC: %s", asctime(gmtime(&t))); printf("local: %s", asctime(localtime(&t)));
#ifdef __STDC_LIB_EXT1__
struct tm buf;
char str[26]; asctime_s(str,sizeof str,gmtime_s(&t, &buf)); printf("UTC: %s", str); asctime_s(str,sizeof str,localtime_s(&t, &buf))); printf("local: %s", str);#endif}
输出:
UTC: Tue Feb 17 18:12:09 2015local: Tue Feb 17 13:12:09 2015UTC: Tue Feb 17 18:12:09 2015local: Tue Feb 17 13:12:09 2015
参考
C11标准(ISO / IEC 9899:2011):7.27.3.3 gmtime函数(p:393-394)
K.3.8.2.3 gmtime_s函数(p:626-627)
C99标准(ISO / IEC 9899:1999):7.23.3.3 gmtime函数(p:343)
C89 / C90标准(ISO / IEC 9899:1990):4.12.3.3 gmtime函数
最后
以上就是隐形棒球为你收集整理的php gmtime,gmtime_s - [ C语言中文开发手册 ] - 在线原生手册 - php中文网的全部内容,希望文章能够帮你解决php gmtime,gmtime_s - [ C语言中文开发手册 ] - 在线原生手册 - php中文网所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复