C语言时间函数之strftime() 详解
概述
在C语言中,我们可以使用time.h
头文件中的函数来处理时间信息。其中,strftime()
函数是一个十分常用且功能强大的时间格式化函数,其可以将给定时间的分量转化成特定格式的字符串。本文将详细讲解strftime()
函数的使用方法及注意事项。
strftime()函数原型
strftime()
函数的原型如下:
size_t strftime(char *s, size_t maxsize, const char *format, const struct tm *timeptr);
其中,参数的含义为:
s
:指向存储时间字符串的字符数组的指针。maxsize
:存储时间字符串的字符数组的最大长度。format
:时间格式控制字符串,用于指定输出字符串的格式。timeptr
:指向struct tm
类型的时间信息结构体的指针。
该函数返回值是输出到目标字符串中的字符数。
strftime()函数使用示例
下面的示例展示了如何使用strftime()
函数将时间信息转换成不同的格式:
#include <time.h>
#include <stdio.h>
int main()
{
char str[100];
struct tm now = { .tm_year=121, .tm_mon=6, .tm_mday=1, .tm_hour=15, .tm_min=12, .tm_sec=54 };
strftime(str, 100, "%Y-%m-%d %H:%M:%S", &now);
printf("时间格式为 YYYY-MM-DD HH:mm:SS 的时间为:%s\n", str);
strftime(str, 100, "%Y/%m/%d %H:%M:%S", &now);
printf("时间格式为 YYYY/MM/DD HH:mm:SS 的时间为:%s\n", str);
strftime(str, 100, "Today is %A, %B %d, %Y.", &now);
printf("时间格式为 Today is Weekday, Month Day, Year 的时间为:%s\n", str);
return 0;
}
输出结果如下:
时间格式为 YYYY-MM-DD HH:mm:SS 的时间为:2021-07-01 15:12:54
时间格式为 YYYY/MM/DD HH:mm:SS 的时间为:2021/07/01 15:12:54
时间格式为 Today is Weekday, Month Day, Year 的时间为:Today is Thursday, July 01, 2021.
上述示例中,我们通过struct tm
结构体来指定时间信息,然后通过strftime()
函数将时间信息转换成不同的格式。
注意事项:
- 时间信息应该用
struct tm
结构体来表示。 - 格式字符串中的控制字符用来指定输出字符串的具体格式。
- 格式字符串中的
%Y
表示年份,%m
表示月份,%d
表示日期,%H
表示小时数,%M
表示分钟数,%S
表示秒数,%A
表示星期几,%B
表示月份的完整名称。更多的格式字符可以查阅参考资料。
总结
strftime()
函数是一个时间格式化函数,在C语言中有着广泛的应用。通过本文的介绍,读者可以了解到该函数的使用方法及注意事项,可以根据自己的需要将时间信息格式化成不同的字符串输出。
参考资料
- strftime 函数 - C++ 参考手册。https://www.runoob.com/cppref/cpp-function-strftime.html
- strftime(3) - Linux man page. https://man7.org/linux/man-pages/man3/strftime.3.html
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言时间函数之strftime()详解 - Python技术站