题目

调用 C 语言标准时间库 <time.h>,获取系统当前的本地日期与时间,并格式化输出为形如 YYYY-MM-DD HH:MM:SS 的时间字符串。

输入格式:无键盘输入。

输出格式:输出当前系统时间的标准格式字符串(如 2026-09-30 11:20:00)。

数据范围与约定:依赖系统本地当前时钟。

思路与算法

1. time_t 与日历时间
调用 time_t now = time(NULL); 获取从纪元(1970-01-01 00:00:00 UTC)起至当前的秒数。

2. 本地时间转换与格式化
通过 struct tm *info = localtime(&now); 转换为带时区修正的本地时间结构体,再通过 strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", info); 生成格式化字符串。

完整程序

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

int main(void)
{
    // 获取自 Unix 纪元(1970-01-01)以来的总秒数
    time_t t = time(NULL);
    // 转换为本地时区的分解时间结构体 struct tm
    struct tm *lt = localtime(&t);

    char buf[64];
    // strftime 安全格式化时间输出(类似于 printf)
    strftime(buf, sizeof buf, "%Y-%m-%d %H:%M:%S", lt);
    printf("%s\n", buf);
    return 0;
}

运行示例

输出:

(当前时间)