C++时间格式化问题:生成12小时制时间并添加指定后缀
修正C++本地时间格式化输出问题
问题原因
你的代码使用了%H格式符,它代表24小时制的小时数(00-23),不符合你需要的12小时制输出要求;同时格式字符串缺少末尾的_3后缀。
修改后的代码
#include <sys/time.h> #include <cstdio> #include <ctime> #include <cstdlib> int main() { std::time_t rawtime; std::tm* timeinfo; char buffer [80]; std::time(&rawtime); timeinfo = std::localtime(&rawtime); // 调整格式:改用12小时制%I,追加_3后缀 std::strftime(buffer, 80, "%d%m%Y_%I%M_bishan_3", timeinfo); printf("%s\n", buffer); return 0; }
关键修改点
- 将格式符
%H替换为%I:%I是12小时制的小时表示(范围01-12),对应上午11点会输出11 - 在格式字符串的末尾添加
_3,匹配你需要的输出格式 - 补充
main函数与打印语句,让代码可以直接编译运行验证结果
内容的提问来源于stack exchange,提问作者batuman
相关产品推荐
相关产品推荐

