【C语言笔记】时间日期函数
前言
time.h是C/C++中的日期和时间头文件。用于需要时间方面的函数。下面分享time.h头文件中几个常用函数的用法:
time()函数
1、函数原型
time_t time(time_t *t);
2、函数说明
time_t 是long int 类型。此函数会返回从公元1970年1月1日的UTC时间从0时0 分0秒算起到现在所经过的秒数。如果t是空指针,直接返回当前时间。如果t不是空指针,返回当前时间的同时,将返回值赋予t指向的内存空间。
3、函数返回值 成功则返回秒数,失败则返回((time_t)-1)值,错误原因存于errno中。
4、示例程序
#include <stdio.h>
#include <time.h>
int main(void)
{
time_t sec = time((time_t*)NULL);
printf("1970-01-01至现在的秒数为:%dn", sec);
return 0;
}
输出结果
1970-01-01至现在的秒数为:1542377079
gmtime()函数
1、函数原型
struct tm *gmtime(const time_t *timep);
2、函数说明
gmtime()将参数timep所指的time_t结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果由结构tm返回。
结构tm的定义为:
struct tm{
int tm_sec; //代表目前秒数, 正常范围为0-59, 但允许至61 秒
int tm_min; //代表目前分数, 范围0-59
int tm_hour; //从午夜算起的时数, 范围为0-23
int tm_mday; //目前月份的日数, 范围01-31
int tm_mon; //代表目前月份, 从一月算起, 范围从0-11
int tm_year; //从1900 年算起至今的年数
int tm_wday; //一星期的日数, 从星期一算起, 范围为0-6
int tm_yday; //从今年1 月1 日算起至今的天数, 范围为0-365
int tm_isdst; //日光节约时间的旗标
};
3、函数返回值
返回结构tm代表目前UTC时间。
4、示例程序
#include <stdio.h>
#include <time.h>
int main(void)
{
char *wday[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
time_t t;
struct tm *p;
int year = 0, mon = 0, mday = 0;
int hour = 0, min = 0, sec = 0;
char *week = NULL;
time(&t);
p = gmtime(&t);
year = 1900 + p->tm_year;
mon = 1 + p->tm_mon;
mday = p->tm_mday;
week = wday[p->tm_wday];
hour = 8 + p->tm_hour; //获取当地时间,与UTC时间相差8小时
min = p->tm_min;
sec = p->tm_sec;
printf("%d-%d-%d %s", year, mon, mday, week);
printf(" %.2d:%.2d:%.2dn", hour, min, sec);
return 0;
}
输出结果
2018-11-16 Fri 22:23:25
localtime()函数
1、函数原型
struct tm *localtime(const time_t * timep);
2、函数说明
localtime()将参数timep所指的time_t 结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果由结构tm返回。
3、函数返回值
返回结构tm代表目前的当地时间。
4、示例程序
#include <stdio.h>
#include <time.h>
int main(void)
{
char *wday[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
time_t t;
struct tm *p;
int year = 0, mon = 0, mday = 0;
int hour = 0, min = 0, sec = 0;
char *week = NULL;
time(&t);
p = localtime(&t); //取得当地时间
year = 1900 + p->tm_year;
mon = 1 + p->tm_mon;
mday = p->tm_mday;
week = wday[p->tm_wday];
hour = p->tm_hour;
min = p->tm_min;
sec = p->tm_sec;
printf("%d-%d-%d %s", year, mon, mday, week);
printf(" %.2d:%.2d:%.2dn", hour, min, sec);
return 0;
}
输出结果
2018-11-16 Fri 22:32:27
ctime()函数
1、函数原型
char *ctime(const time_t *timep);
2、函数说明
ctime()将参数timep所指的time_t结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果以字符串形态返回。此函数已经由时区转换成当地时间。注意:若再调用相关的时间日期函数,此字符串可能会被破坏。
3、函数返回值
返回一字符串表示目前当地的时间日期。格式:星期,月,日,小时:分:秒,年。
4、示例程序
#include <stdio.h>
#include <time.h>
int main(void)
{
time_t t;
time(&t);
printf("%sn", ctime(&t));
return 0;
}
输出结果
Fri Nov 16 22:38:51 2018
asctime()函数
1、函数原型
char *asctime(const struct tm * timeptr);
2、函数说明 asctime()将参数timeptr所指的tm结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果以字符串形态返回。此函数已经由时区转换成当地时间。注意:若再调用相关的时间日期函数,此字符串可能会被破坏。与ctime()函数的不同在于传入参数结构不同。
3、函数返回值 返回一字符串表示目前当地的时间日期。格式:星期,月,日,小时:分:秒,年。
4、示例程序
#include <stdio.h>
#include <time.h>
int main(void)
{
time_t t;
struct tm *p;
char *date = NULL;
time(&t);
p = gmtime(&t);
date = asctime(p);
printf("%sn", date);
return 0;
}
输出结果
Fri Nov 16 14:48:29 2018
以上就是关于time.h头文件里一些时间函数的介绍。其中gmtime()函数与localtime()函数类似,ctime()函数与asctime()函数类似,应把这两对函数对比来看。
参考资料:百度百科及C语言中文网
- iScroll5 表单元素无法失焦 解决方法
- ResNet原理及其在TF-Slim中的实现
- 了解你服务器的心情——top命令详解
- HTML5视音频代码实例 & WEBM格式转换器
- 解析Tensorflow官方PTB模型的demo
- MyBatis源码解析(一)——MyBatis初始化过程解析
- MyBatis源码解析(二)——动态代理实现函数调用
- Git命令速记
- linux设备驱动第三篇:如何写一个简单的字符设备驱动
- Tensorflow高级API的进阶--利用tf.contrib.learn建立输入函数
- Spring速查手册(三)——Spring+JDBC
- [WebKit] JavaScriptCore解析--基础篇(一)字节码的生成及抽象语法树的构建详情分析
- Spring速查手册(二)——Bean的作用域
- pyTorch自然语言处理简单例子
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Dubbo consumer消费端启动报错java.lang.RuntimeException: [source error] not available in a static method: h
- Groovy小记it关键字和IDE报错
- 05 . Jenkins定制主题和设置项目构建信息输出颜色
- 腾讯云物联网平台使用报告
- 01 . PostgreSQL简介部署
- 01 . Git常用命令及方法和分支管理
- 记一次公司mssql server密码频繁被改的事件
- elasticsearch 同义词更新,不同集群返回更新节点个数不一样
- H5应用加固防破解-js虚拟机保护方案浅谈
- struts2概述
- 移动端适配解决方案
- struts2(一)---编写第一个struts2项目
- Struts2(二)---将页面表单中的数据提交给Action
- 03 . Shell数组和函数
- Shell百宝箱(后续会不断更新)