注:获取时间格式化输出的方式有很多,本文只介绍其中之一
本文主要介绍使用 time获取秒,localtime格式化输出
运行环境 Ubuntu 20.04.3 LTS
目录
源码
代码介绍
基本介绍
执行截屏
源码
#include <stdio.h>
#include <time.h>
#include <unistd.h>
int main()
{
time_t t;
while(1)
{
time(&t);
struct tm *myt = localtime(&t);
printf("%d-%d-%d %d:%d:%d\n",myt->tm_year+1900,myt->tm_mon+1,myt->tm_mday,myt->tm_hour,myt->tm_min,myt->tm_sec);
usleep(999999);
}
return 0;
}
代码介绍
#include <stdio.h>???????? #include <time.h>??????? //这个是获取时间的头文件 #include <unistd.h>??????? //这个是 usleep 用的
int main() { ?? ?time_t t;??????? //定义了一个变量,用于存储秒数 ?? ?while(1)??????? //制造一个死循环 ?? ?{
??????? /* 注:由于 每次执行时,都需要重新获取秒数,所以time函数需要放到循环中 */ ?? ??? ?time(&t);??????? //获取时间-- 1970年到现在的秒数,存储到了变量 t 里 ?? ??? ?struct tm *myt = localtime(&t);??????? //格式化,把t里的秒数,按照格式输出给前面的 tm结构体 ?? ??? ?printf("%d-%d-%d %d:%d:%d\n",myt->tm_year+1900,myt->tm_mon+1,myt->tm_mday,myt->tm_hour,myt->tm_min,myt->tm_sec); ?? ??? ?usleep(999999);??????? //打印测试,加个延时玩玩 ?? ?}
?? ?return 0; }
基本介绍
??? time_t? 变量类型为 signed long long int ?? ?time 函数 :获取从1970-01-01 00:00:00 到 现在的 所有秒数 -- 可以打印测试 ?? ?localtime : 格式化输出,将 秒数 格式化 赋值 给 tm结构体 ?? ?????????函数原型 struct tm *localtime(const time_t *timer) ?? ?????????tm结构体 如下 ?? ?????????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 到 11(注意:使用时需要加1使用) ?? ?????????? ?int tm_year; ? ? ?? // 自 1900 年起的年数 ?????????? ?? ?int tm_wday; ? ? ?? // 星期几,范围从 0 到 6 ?? ?????????? ?int tm_yday; ? ? ?? //一年中的第几天,范围从 0 到 365? ?? ?????????? ?int tm_isdst; ? ? ? // 夏令时 ?? ?????????};
执行截屏
|