time函数
time
函数是标准 C 库中的一个函数,用来获取自 1970 年 1 月 1 日 00:00:00 UTC 以来的秒数,这个时间点也被称为 Unix 时间戳或 Epoch 时间。
头文件:
#include <time.h>
函数原型:
time_t time(time_t *result);
返回值:time_t 通常为long型,可用 sizeof 查看内存大小。返回值单位为s,错误时返回-1
result:用于存储时间值,单位为s。存储的值与返回值是同一个值,可以写NULL。
示例代码:
localtime函数
localtime
函数用于将一个秒数(通常是从 time
函数获得的 Unix 时间戳)转换为 struct tm
类型,这是一个结构体,包含更多关于日期和时间的详细信息
头文件:
#include <time.h>
函数原型:
struct tm *localtime(const time_t *timep);
返回值:包含了本地时间的详细信息的结构体指针
timep:要转换的时间值
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(即0表示1月)
int tm_year; // 自1900年以来的年数
int tm_wday; // 一周中的第几天,0-6(即0表示星期天)
int tm_yday; // 一年中的第几天,0-365
int tm_isdst; // 夏令时标志,非零表示夏令时
};
示例代码:
利用sprintf格式化输出当前时间
示例代码如下:
#include <stdio.h>
#include <time.h>
int main() {
time_t NowTime = 0;
struct tm* tTime = NULL;
char buf[100];
//1.使用time获取秒数
NowTime = time(NULL);
//2.使用localtime将秒转换成相应的时间值
tTime = localtime(&NowTime);
//3.使用sprintf格式化输出时间
sprintf(buf,"当前时间为:%d年%02d月%d日,星期%d,%02d-%02d-%02d",\
tTime->tm_year + 1900, \
tTime->tm_mon + 1, \
tTime->tm_mday, \
tTime->tm_wday, \
tTime->tm_hour, \
tTime->tm_min, \
tTime->tm_sec \
);
//4.打印字符串
printf("%s",buf);
return 0;
}
运行结果如下: