localtime(&tm):Thu Dec 24 10:39:06 2015 //本地时间=utc+时区 gmtime(&tm): Thu Dec 24 07:39:06 2015 //两次测试的UTC时间是一样的 ctime: Thu Dec 24 10:39:06 2015 root@ubuntu:~/vm_disk_dpdk/study/apue/sys_info# cp /usr/share/zoneinfo/America/Grenada /etc/localtime root@ubuntu...
int main(int argc, char **argv) { time_t now; struct tm *tmutc, *tmlocal; /*获取日历时间*/ time(&now); /*转换成tm时间*/ tmutc = gmtime(&now); tmlocal = localtime(&now); /*输出时间*/ printf("%s标准时间为:\t%s", tmutc->tm_zone, asctime(tmutc)); printf("%s时间为:\...
localtime 上面介绍的时间都是以格林尼治标准时间(GMT)为标准返回的时间。如果在格林尼治标准时间(GMT)之外的时区使用gmtime函数,或者所在的地方像本例中那样采用了夏令时,你会发现时间(可能还有日期)是不对的。如果要看当地时间,你需要使用localtime函数 该函数收到TZ环境变量的影响,具体见文章最上方介绍 功能:...
在ubuntu系统 命令窗口输入man mktime 后输出一堆函数接口: asctime, ctime, gmtime, localtime, mktime, asctime_r, ctime_r, gmtime_r, localtime_r - transform date and time to broken- down time or ASCII …
printf(“after gmtime, the time is: %d:%d:%d”, tmp_ptr-》tm_hour, tmp_ptr-》tm_min, tmp_ptr-》tm_sec); tmp_ptr = localtime(&tmpcal_ptr); printf(“after localtime, the time is: %d:%d:%d”, tmp_ptr-》tm_hour, tmp_ptr-》tm_min, tmp_ptr-》tm_sec); return 0; } 运行...
time_t struct tm 三个函数 gmtime localtime mktime 1 两个类型 1.1 time_t 类型 linux 中,使用了 time_t 类型来描述时间。本质上它是一个 long 类型。 typedef long 1. time_t 描述的时间是从 1970年1月1日00时00分00秒到获取时间的那一刻的秒数。比如 time_t x = 70,变量 x 表示的时间就是19...
gmtime和localtime可以将time_t类型的时间戳转为tm结构体,用法如下: struct tm* gmtime(const time_t *timep); //将time_t表示的时间转换为没有经过时区转换的UTC时间,是一个struct tm结构指针 stuct tm* localtime(const time_t *timep); //和gmtime功能类似,但是它是经过时区转换的时间,也就是可以转化...
return 0; } 运行结果如下: 基本的意思是,gmtime转出来的是0时区的标准时间 localtime是将时区考虑在内了,转出的当前时区的时间。但是注意,有些嵌入式设备上被裁减过的系统,时区没有被设置好,导致二者转出来的时间都是0时区的。
localtime 是本地时间。这个本地时间,就是看这个地方所在的时区。时间是午夜为 00 点 00 分。所以格林威治时间,就是格林威治午夜定为 00 点 00 分。但是因为地球是圆的,别的地方如果使用格林威治的午夜定位 00 点 00 分,就会出现太阳在不同位置的问题。比如格林威治午夜 00:00 ,新西兰正值...
gettimeofday,time就是纯粹获取秒数(UTC)。 gmtime根据一套算法把秒数(UTC)转成年月日时分秒。 asctime就是纯粹的数值转字符串。 ctime(t)等价于asctime(localtime(t))。 因此,时区相关的实际只有localtime和mktime这对反函数。 localtime,mktime,ctime三个时区相关的函数,它们的实现应该会调用tzset这个函数。