#include "stdafx.h"
#include <time.h>
//time,asctime,gmtime,localtime, mktime
//在先说明的C语言时间函数
//time_t time(time_t *timer);
//double difftime(time_t time1,time_t time2); //得到时间差
//struct tm *gmtime(const time_t *timer); //把日历时间转换成国际时间
//struct tm *localtime(const time_t *timer);
//char *asctime(const struct tm *timeptr); /将时间和日期以字符串格式表示
//char *ctime(const time_t *timer); //得到字符串表示的时间
//size_t strftime(char *s,size_t maxsize,const char *format,const struct tm *timeptr); //设定指定格式的时间
//time_t mktime(struct tm *timeptr); //设置时间
//clock_t clock(void) //得到处理器时间
int _tmain(int argc, _TCHAR* argv[])
{
time_t t=time(NULL);
printf("time_t: %ld\n", t);
tm *tLocal = localtime(&t);
printf("local time %d-%d-%d-%d-%d-%d tm_wday: %d, tm_yday: %d, tm_isdst: %d\n",
tLocal->tm_year+1900, tLocal->tm_mon+1, tLocal->tm_mday,
tLocal->tm_hour, tLocal->tm_min, tLocal->tm_sec,
tLocal->tm_wday, tLocal->tm_yday, tLocal->tm_isdst);
time_t ttLocal = mktime(tLocal);
printf("mktime(ttLocal): %ld\n", ttLocal);
tm *tUTC = gmtime(&t);
printf("UTC__ time %d-%d-%d-%d-%d-%d tm_wday: %d, tm_yday: %d, tm_isdst: %d\n",
tUTC->tm_year+1900, tUTC->tm_mon+1, tUTC->tm_mday,
tUTC->tm_hour, tUTC->tm_min, tUTC->tm_sec,
tUTC->tm_wday, tUTC->tm_yday, tUTC->tm_isdst);
time_t ttUTC = mktime(tUTC);
printf("mktime(tUTC)___: %ld\n", ttUTC);
return 0;
}
time_t: 1421303547
local time 2015-1-15-14-32-27 tm_wday: 4, tm_yday: 14, tm_isdst: 0
mktime(ttLocal): 1421303547
UTC__ time 2015-1-15-6-32-27 tm_wday: 4, tm_yday: 14, tm_isdst: 0
mktime(tUTC)___: 1421274747
注:1.tm *tLocal的值会被tm *tUTC清除,故取得tUTC值后,不能再使用tLocal值。
2.local time与utc time相差“时区”个小时,使用mktime转化成秒后,依然相差“时区”个小时