目录
time.h 函数详解
time.h 头文件包含用于获取和操作时间的函数和宏。以下是 time.h 头文件中的主要函数:
- time():获取当前时间,并将其表示为自纪元(1970 年 1 月 1 日午夜 UTC)以来经过的秒数。
- localtime():将 time() 函数返回的时间转换为本地时间。
- gmtime():将 time() 函数返回的时间转换为格林威治标准时间。
- ctime():将 time() 函数返回的时间转换为一个可读的字符串。
- asctime():将 tm 结构体转换为一个可读的字符串。
- mktime():将 tm 结构体转换为自纪元以来经过的秒数。
- strftime():将 tm 结构体格式化为一个字符串。
- strptime():将一个字符串解析为 tm 结构体。
time_t 类型
time_t 类型是一个有符号整数类型,表示自纪元(1970 年 1 月 1 日午夜 UTC)以来经过的秒数。time() 函数返回一个 time_t 值,表示当前时间。
tm 结构体
tm 结构体表示一个日历时间。它包含以下成员:
- tm_sec:秒(0-59)
- tm_min:分钟(0-59)
- tm_hour:小时(0-23)
- tm_mday:一个月中的第几天(1-31)
- tm_mon:月份(0-11)
- tm_year:年份(自 1900 年起)
- tm_wday:一周中的第几天(0-6,其中 0 表示星期日)
- tm_yday:一年中的第几天(0-365)
- tm_isdst:夏令时标志(非零表示启用夏令时)
示例
locatime函数
以下示例展示了如何使用 time.h 函数获取和格式化当前时间:
#include <stdio.h>
#include <time.h>
int main() {
time_t t = time(NULL);
struct tm *tm = localtime(&t);
printf("当前时间:%s", asctime(tm));
return 0;
}
在上面的示例中,我们使用 time() 函数获取当前时间,并将其存储在 time_t 变量 t 中。然后,我们使用 localtime() 函数将 t 转换为本地时间,并将其存储在 tm 结构体中。最后,我们使用 asctime() 函数将 tm 结构体格式化为一个可读的字符串,并打印它。
gmtime函数
#include <stdio.h>
#include <time.h>
int main() {
time_t t = time(NULL);
struct tm *tm = gmtime(&t);
printf("当前时间:%s", asctime(tm));
return 0;
}
输出格式
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <sys/time.h>
int main() {
time_t timestamp;
struct tm *tm;
timestamp = time(NULL);
tm = gmtime(×tamp);
printf("时间:%04d-%02d-%02d %02d:%02d:%02d\n",
tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,
tm->tm_hour, tm->tm_min, tm->tm_sec);
return 0;
}
注意事项
- time.h 函数在不同的系统上可能具有不同的实现。在使用这些函数之前,请务必查阅系统文档。
- time_t 类型的大小和范围可能因系统而异。在使用 time_t 值之前,请务必检查其范围。