mktime64()- 转换本地时间
格式
#include <time.h>
time64_t mktime64(struct tm *time);语言级别
ILE C 扩展
线程安全
是
语言环境敏感
此函数的行为可能受当前语言环境的 LC_TOD 类别影响。
描述
mktime64() 函数将 time所指向的存储的 tm 结构 (假定为作业本地时间) 转换为适合与其他时间函数一起使用的 time64_t 值。 转换后, time64_t 值将被视为全球标准时间 (UTC)。 对于此转换, mktime64() 将检查本地时区和夏令时 (DST) 的当前语言环境设置。 如果未在当前语言环境中设置这些值,那么 mktime64() 将从当前作业获取本地时区和 DST 设置。 如果在语言环境中设置了 DST ,但未设置时区信息,那么将忽略该语言环境中的 DST 信息。 然后, mktime64() 函数使用当前作业的时区信息来确定 UTC。
time 所指向的某些结构元素的值不限于为 gmtime64()显示的范围。
将忽略传递到 mktime64() 的 tm_wday 和 tm_yday 的值,并在返回时为其分配正确的值。
tm_isdst 的正值或 0 值会导致 mktime() 最初假定 DST 分别在指定时间内生效或未生效。 tm_isdst 的负值会导致 mktime() 尝试确定 DST 是否在指定时间内生效。
注: 此函数支持的日期和时间范围为 0 1/0 1/1 9 7 0 00:00:00 到 1 2/3 1/9 9 9 9 23:59:59。
返回值
mktime64() 函数返回类型为 time64_t的全球标准时间 (UTC)。 如果无法表示全球标准时间,或者如果给定的 time 超出范围,那么将返回值 (time_t) (-1) 。 如果给定的 time 超出范围,那么 errno 设置为 EOVERFLOW。
示例
此示例打印从当前日期起 40 天 16 小时的星期几。
#include <stdio.h>
#include <time.h>
char *wday[] = { "Sunday", "Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday" };
int main(void)
{
time64_t t1, t3;
struct tm *t2;
t1 = time64(NULL);
t2 = localtime64(&t1);
t2 -> tm_mday += 40;
t2 -> tm_hour += 16;
t3 = mktime64(t2);
printf("40 days and 16 hours from now, it will be a %s \n",
wday[t2 -> tm_wday]);
}
/******************* Output should be similar to: ***************
40 days and 16 hours from now, it will be a Sunday
*/
相关信息
- asctime ()-将时间转换为字符串
- asctime_r ()-将时间转换为字符串 (可重新启动)
- ctime ()-将时间转换为字符串
- ctime64()-将时间转换为字符串
- ctime64_r()-将时间转换为字符串 (可重新启动)
- ctime_r ()-将时间转换为字符串 (可重新启动)
- gmtime ()-转换时间
- gmtime64()-转换时间
- gmtime64_r()-转换时间 (可重新启动)
- gmtime_r ()-转换时间 (可重新启动)
- localtime ()-转换时间
- localtime64()-转换时间
- localtime64_r()-转换时间 (可重新启动)
- localtime_r ()-转换时间 (可重新启动)
- mktime ()-转换本地时间
- time ()-确定当前时间
- time64()-确定当前时间
- <time.h>