分类: C/C++
2011-02-24 16:23:30
int settimeofday(const struct timeval *tv , const struct timezone *tz);
struct
timeval {
struct
timezone { 用于修改当前系统时间(只改变系统时间,不改变硬件时钟时间) tv表示需要设置的时间,tz表示时区。如果tv或tz某一项为NULL,表示对相关的信息不感兴趣。 如何把我们熟知的时间格式转换成tv->tv_sec: 利用结构体struct tm { int tm_sec; /* 秒 – 取值区间为[0,59] */ int tm_min; /* 分 - 取值区间为[0,59] */ int tm_hour; /* 时 - 取值区间为[0,23] */ int tm_mday; /* 一个月中的日期 - 取值区间为[1,31] */ int tm_mon; /* 月份(从一月开始,0 代表一月) - 取值区间为[0,11] */ int tm_year; /* 年份,其值等于实际年份减去 1900 */ int tm_wday; /* 星期 – 取值区间为[0,6],其中0代表星期天,1 代表星期一,以此类推 */ int tm_yday; /* 从每年的1 月1 日开始的天数 – 取值区间为[0,365],其中0代表 1 月1日, 1 代表1 月2日,以此类推 */ int tm_isdst; /* 夏令时标识符,实行夏令时的时候,tm_isdst为正。不实行夏令时的进候, tm_isdst 为0;不了解情况时,tm_isdst()为负。*/ }; 把我们熟悉的时间格式存到该结构体中,然后再用mktime()转成time_t. time_t mktime(struct tm * timeptr); 然后把mktime的返回值存入tv->tv_sec即可。再用settimeofday就可以设置时间了 |