<time.h> 是 C 标准库中的一个头文件,提供了处理和操作日期和时间的函数和类型。这个头文件中的函数用于获取当前时间、设置时间、格式化时间和计算时间差等。<time.h> 头文件定义了四个变量类型、两个宏和各种操作日期和时间的函数。
库函数 : <time.h> 中定义的函数
1 char *asctime(const struct tm *timeptr)
返回一个指向字符串的指针,它代表了结构 timeptr 的日期和时间。
2 clock_t clock(void)
返回程序执行起(一般为程序的开头),处理器时钟所使用的时间。
3 char *ctime(const time_t *timer)
返回一个表示当地时间的字符串,当地时间是基于参数 timer。
4 double difftime(time_t time1, time_t time2)
返回 time1 和 time2 之间相差的秒数 (time1-time2)。
5 struct tm *gmtime(const time_t *timer)
timer 的值被分解为 tm 结构,并用协调世界时(UTC)也被称为格林尼治标准时间(GMT)表示。
6 struct tm *localtime(const time_t *timer)
timer 的值被分解为 tm 结构,并用本地时区表示。
7 time_t mktime(struct tm *timeptr)
把 timeptr 所指向的结构转换为一个依据本地时区的 time_t 值。
8 size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr)
根据 format 中定义的格式化规则,格式化结构 timeptr 表示的时间,并把它存储在 str 中。
9 time_t time(time_t *timer)
计算当前日历时间,并把它编码成 time_t 格式。
10 int timespec_get(struct timespec *ts, int base);
获取当前时间(C11)。
示例:
#include <stdio.h>
#include <time.h>
int main() {
struct tm time_info;
char buffer[80];
time_info.tm_year = 2024 - 1900; // 年份从 1900 年开始计算
time_info.tm_mon = 5; // 六月,范围从 0 到 11
time_info.tm_mday = 12;
time_info.tm_hour = 12;
time_info.tm_min = 0;
time_info.tm_sec = 0;
time_info.tm_isdst = -1; // 自动判断是否为夏令时
mktime(&time_info);
strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", &time_info);
printf("Custom time: %s\n", buffer);
return 0;
}