我是靠谱客的博主 诚心宝马,这篇文章主要介绍c 时间库函数,现在分享给大家,希望可以做个参考。

使用下列函数需现包含下面的头文件:

复制代码
1
2
#include <time.h>

获取当前时间:

复制代码
1
2
time_t time(time_t *seconds)

返回(1970-01-01 00:00:00 UTC)起经过的时间(日历时间),以秒为单位。如果 seconds 不为空,则返回值也存储在变量 seconds 中

将time_t类型日期时间转换为 struct tm类型的日期时间:

复制代码
1
2
struct tm *gmtime(const time_t *timer)

此函数返回的是UTC时间。
struct tm具体细节:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
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 */ int tm_year; /* 自 1900 起的年数 */ int tm_wday; /* 一周中的第几天,范围从 0 到 6 */ int tm_yday; /* 一年中的第几天,范围从 0 到 365 */ int tm_isdst; /* 夏令时*/ };

将struct tm类型日期时间转换为 time_t类型的日期时间:

复制代码
1
2
time_t mktime(struct tm *timeptr)

字符串转时间函数:

复制代码
1
2
char *strptime(const char *buf,const char *format,struct tm *timeptr)

buf: 要转换的字符串(以0结尾);
format: 字符串格式
struct tm *timeptr:转换后存储tm值的指针;
返回值: 指向转换过程处理的最后一个字符后面的那个字符。
format参数:
转换控制符 说明
%a 星期几的简写形式
%A 星期几的全称
%b 月份的简写形式
%B 月份的全称
%c 日期和时间
%d 月份中的日期,0-31
%H 小时,00-23
%I 12进制小时钟点,01-12
%j 年份中的日期,001-366
%m 年份中的月份,01-12
%M 分,00-59
%p 上午或下午
%s 秒,00-60
%u 星期几,1-7
%w 星期几,0-6
%x 当地格式的日期
%X 当地格式的时间
%y 年份中的最后两位数,00-99
%Y 年
%Z 地理时区名称

struct tm结构时间转换为字符串:

复制代码
1
2
size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr)

str 是指向目标数组的指针,用来复制产生的 C 字符串。
maxsize 是被复制到 str 的最大字符数。
format参数同strptime函数
如果产生的 C 字符串小于 maxsize 个字符(包括空结束字符),则会返回复制到 str 中的字符总数(不包括空结束字符),否则返回零。

示例代码:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//比较两个时间 time_t t1; time_t t2; struct tm timeptr; struct tm *tmp; strptime(row[0], "%Y-%m-%d %H:%M:%S", &timeptr);//row[0]是从数据库中查询到的时间,是字符串格式,要转换成struct tm格式 t2 = mktime(&timeptr);//struct tm格式转换为time_t格式 t1 = time(NULL);//当前的时间 tmp = gmtime(&t1);//日历时间转换为UTC时间,与t2保持一致 t1 = mktime(tmp); if((t1-t2)<600){//两个时间相差10min /*do something*/ }

最后

以上就是诚心宝马最近收集整理的关于c 时间库函数的全部内容,更多相关c内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部