有库函数也有linux系统调用
- 第一个是time,参数可以为空,返回的是1970年1月1日0点到当前的时间的秒数,所以是很大的数字。
- 如果想清晰的看出年月日,时分秒,在time基础上,使用localtime函数,参数就是time返回值,localtime函数的返回值是一个结构体指针,结构体包含了年月日,时分秒,及周数天数等等。
- 如果感觉localtime打印这些时间太麻烦,可以使用asctime,它的作用,可以理解为直接帮你翻译结构体里面的内容,所以函数的参数就是struct time结构体。
- 还有个函数跟localtime功能差不多,ctime它可以直接把time得到的时间戳格式化。
- 如果你希望得到更加精准的时间,比如微妙这个级别,可以考虑使用gettimeofday,提供两个参数,第一个是struct timeval结构体,第二个参数可以写成空,timeval结构体包含了两个成员,一个是秒,一个是微妙,打印出来就是一个非常精确的时间。
#include<stdio.h> #include<time.h> #include<sys/time.h> int main() { time_t cur = time(NULL); printf("%lu\n", cur); printf("-----localtime-----\n"); struct tm *t = localtime(&cur); printf("%d 年 %d 月 %d 日 %d 时 %d 分 %d 秒\n", t->tm_year + 1900, t->tm_mon + 1, t->tm_mday, t->tm_hour, t->tm_min, t->tm_sec); printf("-----asctime-----\n"); printf("%s\n", asctime(t)); printf("-----ctime-----\n"); printf("%s\n", ctime(&cur)); printf("-----gettimeofday-----\n"); struct timeval t_val; gettimeofday(&t_val, NULL); printf("%ld %ld\n", t_val.tv_sec, t_val.tv_usec); return 0; } /* -----localtime----- 2023 年 5 月 23 日 12 时 5 分 49 秒 -----asctime----- Tue May 23 12:05:49 2023 -----ctime----- Tue May 23 12:05:49 2023 -----gettimeofday----- */ // struct tm { // int tm_sec; /* Seconds (0-60) */ // int tm_min; /* Minutes (0-59) */ // int tm_hour; /* Hours (0-23) */ // int tm_mday; /* Day of the month (1-31) */ // int tm_mon; /* Month (0-11) */ // int tm_year; /* Year - 1900 */ // int tm_wday; /* Day of the week (0-6, Sunday = 0) */ // int tm_yday; /* Day in the year (0-365, 1 Jan = 0) */ // int tm_isdst; /* Daylight saving time */ // }; // struct timeval { // time_t tv_sec; /* seconds */ // suseconds_t tv_usec; /* microseconds */ // };
讯享网

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/47403.html