it编程 > 编程语言 > C/C++

C++ 函数 strftime 和时间格式示例详解

6人参与 2025-06-13 C/C++

c++ 函数 strftime 详解

一、函数原型

#include <ctime>
size_t strftime(
    char* str,
    size_t maxsize,
    const char* format,
    const struct tm* timeptr
);

二、功能描述

strftime 函数根据 format 字符串中指定的格式,将 timeptr 指向的 struct tm 结构体中的日期和时间信息格式化后存储到 str 指向的字符数组中。如果结果字符串的长度(不包括终止的空字符)小于 maxsize,则会在字符串末尾添加一个空字符作为终止符。如果结果字符串的长度等于或大于 maxsize,则结果会被截断,并且不会在末尾添加空字符。

三、格式字符串说明

格式字符串 format 可以包含转换说明符和普通字符。转换说明符以百分号(%)开始,后跟一个或多个字符,用于指定日期和时间的格式。常见的转换说明符包括:

%a:星期几的缩写(如 sun)。
%a:星期几的全称(如 sunday)。
%b:月份的缩写(如 jan)。
%b:月份的全称(如 january)。
%c:本地相应的日期和时间表示。
%d:月份中的天数(01-31)。
%h:小时(24小时制,00-23)。
%i:小时(12小时制,01-12)。
%j:一年中的天数(001-366)。
%m:月份(01-12)。
%m:分钟(00-59)。
%p:本地 am 或 pm 的相应符。
%s:秒(00-60,允许闰秒)。
%u:一年中的第几周(00-53,星期天为每周的第一天)。
%w:星期几(0-6,星期天为 0)。
%w:一年中的第几周(00-53,星期一为每周的第一天)。
%x:本地相应的日期表示。
%x:本地相应的时间表示。
%y:年份的最后两位数(00-99)。
%y:完整年份。
%%:一个百分号。

四、返回值

strftime 函数返回存储在 str 中的字符数(不包括终止的空字符)。如果返回值等于 0,则表示出现了错误。

五、示例代码

#include <iostream>
#include <iomanip>
#include <ctime>
int main() {
    std::time_t t = std::time(nullptr);
    std::tm* now = std::localtime(&t);
    char buffer[100];
    std::strftime(buffer, sizeof(buffer), "%y-%m-%d %h:%m:%s", now);
    std::cout << "formatted time: " << buffer << std::endl;
    return 0;
}

这段代码将当前时间格式化为 yyyy-mm-dd hh:mm:ss 的形式,并输出到控制台。

strftime 是 c/c++ 标准库中用于格式化日期和时间的函数,定义在 <ctime> 头文件中。它将 tm 结构体中的时间信息转换为指定格式的字符串,是处理时间输出的核心工具。

到此这篇关于c++ 函数 strftime 和时间格式详解的文章就介绍到这了,更多相关c++ 函数 strftime内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

您想发表意见!!点此发布评论

推荐阅读

C++中智能指针weak_ptr的原理及使用

06-13

C++ 进程间通信IPC的实现示例

06-13

C++中string流的具体使用

06-11

C++作用域和标识符查找规则详解

06-10

c/c++中opencv双边滤波的实现

06-10

C语言 fgetc的用法详解以注意事项场景分析

06-10

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论