C语言标准库里的获取时间函数及时间格式转换详解
头文件:
#include <time.h>
相关库函数(截图摘自:https://www.runoob.com/cprogramming/c-standard-library-time-h.html)
相关数据结构:
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开始算的,0代表1月,1代表2月,以此类推 */
int tm_year; /* 自 1900 年起的年数 */
int tm_wday; /* 一周中的第几天,范围从 0 到 6,这里注意:0代表星期天 */
int tm_yday; /* 一年中的第几天,范围从 0 到 365 */
int tm_isdst; /* 夏令时 */
};
代码示例:
int main()
{
const char* weekday[] = {"周天", "周一", "周二", "周三", "周四", "周五", "周六"};
struct tm* pt;
time_t timeStamp;
// 获取时间戳
timeStamp = time(NULL);
// 转为本地时间
pt = localtime(&timeStamp);
debug(
"当前时间:%04d-%02d-%02d %02d:%02d:%02d %s",
pt->tm_year + 1900,
pt->tm_mon + 1,
pt->tm_mday,
pt->tm_hour,
pt->tm_min,
pt->tm_sec,
weekday[pt->tm_wday]
);
return 0;
}
程序运行结果:
下面的实例演示了 strftime() 函数的用法:
#include <stdio.h>
#include <time.h>
int main ()
{
time_t rawtime;
struct tm *info;
char buffer[80];
time( &rawtime );
info = localtime( &rawtime );
strftime(buffer, 80, "%Y-%m-%d %H:%M:%S", info);
printf("格式化的日期 & 时间 : |%s|\n", buffer );
return(0);
}
程序运行结果:
格式化的日期 & 时间 : |2018-09-19 08:59:07|
ends…