如何使用ctime修改C语言时间戳格式以适配文件名?
将时间戳转为适合文件名的格式
你当前用ctime输出的格式包含空格,不适合作为文件名。推荐用strftime函数自定义时间格式,它可以生成无特殊字符、符合文件名要求的字符串。
修改后的代码示例
#include <stdio.h> #include <time.h> int main(void) { time_t rawtime; struct tm *timeinfo; char timestamp[30]; // 预留足够空间存储格式化后的字符串 time(&rawtime); timeinfo = localtime(&rawtime); // 将time_t类型转换为本地时间结构体 // 按MM_DD_YY_HH_M_S格式生成时间字符串 strftime(timestamp, sizeof(timestamp), "%m_%d_%y_%H_%M_%S", timeinfo); printf("%s\n", timestamp); // 后续可直接用timestamp作为文件名,例如 fopen(timestamp, "w"); return 0; }
格式符说明
%m:两位数字的月份(01-12)%d:两位数字的日期(01-31)%y:两位数字的年份(如2023对应23)%H:24小时制的两位数字小时(00-23)%M:两位数字的分钟(00-59)%S:两位数字的秒(00-59)
输出示例
04_12_23_14_51_03
内容的提问来源于stack exchange,提问作者earl
相关产品推荐
相关产品推荐

