time.h 是 C 标准库中的一个头文件,它提供了一系列函数来操作日期和时间。下面我们来详细讲解如何使用 time.h 标准库。
时间表示法
在 time.h 中,通常使用 time_t
类型来表示时间戳(timestamp),即表示从 1970 年 1 月 1 日 0 时 0 分 0 秒到某一个时间点所经过的秒数。时间戳可以用 time()
函数获取。
同时,我们还可以使用 struct tm
类型来表示日期和时间,它包含了下面这些成员:
struct tm {
int tm_sec; // Seconds (0-60)
int tm_min; // Minutes (0-59)
int tm_hour; // Hours (0-23)
int tm_mday; // Day of the month (1-31)
int tm_mon; // Month (0-11)
int tm_year; // Year - 1900
int tm_wday; // Day of the week (0-6, Sunday = 0)
int tm_yday; // Day in the year (0-365, 1 Jan = 0)
int tm_isdst; // Daylight saving time
};
具体函数使用
以下是常用的 time.h 函数:
time()
函数
用于获取当前的时间戳。
#include <time.h>
time_t time(time_t *tloc);
参数time_t *tloc
可以不传入,也可以传入一个 time_t
类型的指针,该函数会向其存放返回值。
示例:
#include <stdio.h>
#include <time.h>
int main() {
time_t t = time(NULL);
printf("当前时间戳: %lld\n", t);
return 0;
}
localtime()
函数
用于将时间戳转换为本地日期和时间。
#include <time.h>
struct tm *localtime(const time_t *timep);
timep
是时间戳的指针。
示例:
#include <stdio.h>
#include <time.h>
int main() {
time_t t = time(NULL);
struct tm *tm_ptr = localtime(&t);
printf("当前时间为: %d年%d月%d日 %d:%d:%d\n", tm_ptr->tm_year + 1900,
tm_ptr->tm_mon + 1, tm_ptr->tm_mday,
tm_ptr->tm_hour, tm_ptr->tm_min, tm_ptr->tm_sec);
return 0;
}
输出:
当前时间为: 2022年06月12日 20:48:57
strftime()
函数
用于将时间转换为字符串表示。
#include <time.h>
size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr);
str
是目标字符串,maxsize
是目标字符串的大小,format
是字符串格式,timeptr
是要转换的时间。
下面是 format
参数的格式说明:
标志符 | 含义 |
---|---|
%a | 本地缩写星期几 |
%A | 本地完整星期几 |
%b | 本地缩写月份名 |
%B | 本地完整月份名 |
%c | 本地适当日期表示 |
%d | 日 |
%H | 24 小时制小时数 |
%I | 12 小时制小时数 |
%j | 年内日数 |
%m | 月 |
%M | 分钟 |
%p | 本地 a.m. 或 p.m. |
%S | 秒 |
%U | 年内周数(以周日为一周的第一天) |
%w | 数字表示星期几(0-6) |
%W | 年内周数(以周一为一周的第一天) |
%x | 本地适当日期表示(无时区) |
%X | 本地适当时间表示(无时区) |
%y | 年份(后两位) |
%Y | 完整年份 |
%Z | 时区 |
%% | % 字符 |
示例:
#include <stdio.h>
#include <time.h>
int main() {
time_t t = time(NULL);
char str[100];
strftime(str, 100, "%Y-%m-%d %H:%M:%S", localtime(&t));
printf("当前时间为: %s\n", str);
return 0;
}
输出:
当前时间为: 2022-06-12 20:53:48
以上就是 time.h 标准库的使用攻略了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C 标准库 time.h - Python技术站