You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C语言中将获取的日期(如05-11)保存为字符串?

将日-月格式日期保存为字符串的最简方法

以下两种是最简洁且安全的实现方式:

方法1:使用snprintf(通用字符串格式化)

利用snprintf直接将格式化后的日期写入字符串缓冲区,它比sprintf更安全,能避免缓冲区溢出:

#include <stdio.h>
#include <time.h>

int main()
{
    time_t t = time(NULL);
    struct tm tm = *localtime(&t);
    char date_str[6]; // 存储"DD-MM"(5个字符+1个终止符)
    snprintf(date_str, sizeof(date_str), "%02d-%02d", tm.tm_mday, tm.tm_mon + 1);
    // 此时date_str即为保存好的日期字符串,可直接使用
    printf("%s\n", date_str); // 输出示例:05-11
    return 0;
}

方法2:使用strftime(专门的时间格式化函数)

strftime是C标准库专为时间结构体设计的格式化函数,语义更清晰,无需手动处理月份+1:

#include <stdio.h>
#include <time.h>

int main()
{
    time_t t = time(NULL);
    struct tm tm = *localtime(&t);
    char date_str[6];
    // %d 表示两位数字的日,%m 表示两位数字的月
    strftime(date_str, sizeof(date_str), "%d-%m", &tm);
    printf("%s\n", date_str); // 输出示例:05-11
    return 0;
}

两种方法都能高效完成需求,其中strftime更贴合时间处理场景,代码可读性更强;snprintf则是通用的字符串格式化方案,适用范围更广。

内容的提问来源于stack exchange,提问作者ecjb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 13:30:54