timegm函数
概要:
#include <time.h> time_t timegm(struct tm *timeptr);
描述:
该函数将参数timeptr指向结构中以UTC时间表示的分解时间转换为与time函数返回值具有相同编码的日历时间。
结构成员tm_wday和tm_yday原始值会被忽略;其它结构成员即使超出有效范围,也会被解释,例如:结构成员tm_mday值可能大于31,会被解释为所选月份最后一天之后的天数。成功调用函数后,结构成员tm_wday和tm_yday的值会被合理设置,其它结构成员会被设置成表示指定的日历时间,但它们的值会被强制到有效范围内;在结构成员tm_mon和tm_year的值确定之前,不会设置结构成员tm_mday的值。
参数:
struct tm *timeptr
参数为指向struct tm类型对象的指针。
返回值:
函数返回编码为time_t类型的指定日历时间。如果日历时间无法使用time_t类型表示,或者参数timeptr指向结构的成员tm_year无法使用int类型表示,函数返回(time_t)(-1),并且不改变结构成员tm_wday的值。
范例:
|
|
结果:
假设输入:
Enter year:
1975
Enter month:
8
Enter day:
16
将输出:
August 16, 1975 is Saturday.
1970年1月1日是一个重要的时间节点,有些实现(例如:GCC、Visual Studio)对这个时间节点后的日历时间能够正常表示;但之前的日历时间不能正常表示。
相关内容:
| struct tm | 表示分解时间的结构类型。 |
| mktime | 将本地时间表示的分解时间转换为time_t类型日历时间的函数。 |
| time_t | 表示日历时间的实数类型。 |
主要参考资料: