通过 函数 time(NULL) 获取出来的时间, 使用这个工具 ()转成北京时间, 要比使用
localtime(&t)少8个小时。 也使用过 settimeofday设置过时区, 好像是没有任何作用的。
求解!
struct timeval stime;
stime.tv_sec = srv_time;
stime.tv_usec = 0;
struct timezone tz;
tz.tz_minuteswest = -480;
tz.tz_dsttime = 0;
settimeofday(&stime, &tz);
srv_time当前的时间戳
你如果用date命令修改过成为本地时间,然后通过time()函数获取到的秒数确实是1970.1.1 00:00:00之后的秒数
但是你忽略一个问题,在你调用localtime之前,你当前的linux系统的时区是哪个时区的,之所以时间刚好相差8个小时, 应该就是时区不是北京的时区
我没有尝试,个人感觉应该是这个问题,你改下时区试试