库文件 time.h
#include <stdio.h>
#include <time.h> int main() { // 设置本地化环境为中文,以便输出中文格式的时间 // 获取当前时间 time_t rawtime; //时间变量 struct tm *timeinfo; // struct tm 时间的结构体时间库自带的 /*结构 struct tm { int tm_sec; // 秒,范围从 0 到 59 int tm_min; // 分,范围从 0 到 59 int tm_hour; // 小时,范围从 0 到 23 int tm_mday; // 一月中的第几天,范围从 1 到 31 int tm_mon; // 月份,范围从 0 到 11(0 代表一月,11 代表十二月) int tm_year; // 自 1900 年起的年数 int tm_wday; // 一周中的第几天,范围从 0 到 6(0 代表星期天) int tm_yday; // 一年中的第几天,范围从 0 到 365(在闰年是 366) int tm_isdst; // 夏令时标识符
};*/char time_str[80]; //存储时间的数组 time(&rawtime); //获取时间 通常表示自1970年1月1日以来的秒数 &rawtime秒数存放的位置 timeinfo = localtime(&rawtime); //将秒数转换为 struct tm *timeinfo; 结构体数据 // 格式化时间,包含中文 strftime(time_str, sizeof(time_str), "当前时间是:%Y年%m月%d日 %H时%M分%S秒", timeinfo); //格式化日期和时间的函数。/*下面是一些常用的格式说明符:%Y:四位数的年份(例如:2023)。
%m:两位数的月份(01-12)。
%d:两位数的日期(01-31)。
%H:两位数的小时(00-23,24小时制)。
%I:两位数的小时(01-12,12小时制)。
%M:两位数的分钟(00-59)。
%S:两位数的秒(00-59)。
%p:本地环境的上午或下午标记(AM 或 PM)。
%A:星期几的全称(例如:Sunday)。
%a:星期几的简称(例如:Sun)。
%B:月份的全称(例如:January)。
%b:月份的简称(例如:Jan)。
%c:本地环境的日期和时间表示。
%x:本地环境的日期表示。
%X:本地环境的时间表示。
%%:输出一个 % 字符。*/// 输出时间 printf("%s\n", time_str); return 0;
}
流程
1导入头文件
#include <time.h>
2获取本地时间
time_t rawtime; //变量
time(&rawtime); //获取时间 通常表示自1970年1月1日以来的秒数 &rawtime秒数存放的位置
3格式转换
struct tm *timeinfo; // struct tm 时间的结构体时间库自带的
timeinfo = localtime(&rawtime); //将秒时间转换为结构体的时间
4存储在数组中
char time_str[80]; //存储时间的数组
// 格式化时间,包含中文
strftime(time_str, sizeof(time_str), "当前时间是:%Y年%m月%d日 %H时%M分%S秒", timeinfo); //格式化日期和时间的函数。
5打印时间
printf("%s\n", time_str);
简化代码
#include <stdio.h>
#include <time.h> int main() { // 获取当前时间 time_t rawtime; //时间变量 struct tm *timeinfo; // struct tm 时间的结构体时间库自带的 char time_str[80]; //存储时间的数组 time(&rawtime); //获取时间 通常表示自1970年1月1日以来的秒数 &rawtime秒数存放的位置 timeinfo = localtime(&rawtime); //将秒数转换为 struct tm *timeinfo; 结构体数据 // 格式化时间,包含中文 strftime(time_str, sizeof(time_str), "当前时间是:%Y年%m月%d日 %H时%M分%S秒", timeinfo); //格式化日期和时间的函数。// 输出时间 printf("%s\n", time_str); return 0;
}