C语言中两种方式表示时间日期值time_t和struct tm类型的相互转换
使用gmtime函数或localtime函数将time_t类型的时间日期转换为structtm类型:
使用time函数返回的是一个long值,该值对用户的意义不大,一般不能根据其值确定具体的年、月、日等数据。gmtime函数可以方便的对time_t类型数据进行转换,将其转换为tm结构的数据方便数据阅读。
gmtime函数的原型如下:
struct tm *gmtime(time_t*timep);
localtime函数的原型如下:
struct tm *localtime(time_t*timep);
将参数timep所指的time_t类型信息转换成实际所使用的时间日期表示方法,将结果返回到结构tm结构类型的变量。
gmtime函数用来存放实际日期时间的结构变量是静态分配的,每次调用gmtime函数都将重写该结构变量。如果希望保存结构变量中的内容,必须将其复制到tm结构的另一个变量中。
gmtime函数与localtime函数的区别:
gmtime函数返回的时间日期未经时区转换,是UTC时间(又称为世界时间,即格林尼治时间)。
localtime函数返回当前时区的时间,
转换日期时间表示形式time_t类型转换为structtm类型示例:
#include
#include
int main()
{
char*wday[]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};/*指针字符数组*/
time_t t;
struct tm *p;
t=time(NULL);/*获取从1970年1月1日零时到现在的秒数,保存到变量t中*/
p=gmtime(&t); /*变量t的值转换为实际日期时间的表示格式*/
printf("%d年%02d月%02d日",(1900+p->tm_year),(1+p->tm_mon),p->tm_mday);
printf(" %s ", wday[p->tm_wday]);
printf("%02d:%02d:%02d\n", p->tm_hour,p->tm_min, p->tm_sec);
return 0;
}
注意:p=gmtime(&t);此行若改为p=localtime(&t);则返回当前时区的时间
② 使用mktime函数将structtm类型的时间日期转换为time_t类型:
表头文件
#include
定义函数
time_t mktime(strcut tm *timeptr);
函数说明
mktime()用来将参数timeptr所指的tm结构数据转换成从公元1970年1月1日0时0分0 秒算起至今的UTC时间所经过的秒数。
返回值
返回经过的秒数。
日期转换为秒数示例:
#include
#include
int main()
{
time_t t;
struct tm stm;
printf("请输入日期时间值(按yyyy/mm/dd hh:mm:ss格式):");
scanf("%d/%d/%d%d:%d:%d",&stm.tm_year,&stm.tm_mon,&stm.tm_mday,
&stm.tm_hour,&stm.tm_min,&stm.tm_sec);
stm.tm_year-=1900; /*年份值减去1900,得到tm结构中保存的年份序数*/
stm.tm_mon-=1; /*月份值减去1,得到tm结构中保存的月份序数*/
t=mktime(&stm); /* 若用户输入的日期时间有误,则函数返回值为-1*/
if(-1==t)
{
printf("输入的日期时间格式出错!\n");
exit(1);
}
printf("1970/01/01 00:00:00~%d/%02d/%02d%02d:%02d:%02d共%d秒\n",
stm.tm_year+1900,stm.tm_mon,stm.tm_mday,
stm.tm_hour,stm.tm_min,stm.tm_sec,t);
return 0;
}
转:http://www.360doc.com/content/11/0720/14/1317564_134702417.shtml
转载于:https://www.cnblogs.com/zl-graduate/p/6061135.html
C语言中两种方式表示时间日期值time_t和struct tm类型的相互转换相关推荐
- rsa1024 公钥c语言程序,两种方式生成RSA 公钥私钥
两种方式-生成RSA256私钥公钥 两种方式生成私钥公钥 1.ssh-keygen 方式 生成加密长度4096位密钥 生成私钥:ssh-keygen -t rsa -b 4096 -f ${priva ...
- 【C语言】两种方式实现冒泡排序算法
题目要求 编写一个C语言程序,实现基本的冒泡排序算法. 算法 冒泡排序,用一句话来总结: 一组数中,相邻的两个数进行比较.交换,将最大(小)数交换至尾(首)部,即完成了一次冒泡排序 要想对N个数字进行 ...
- c语言冒泡排序法程序填空_【C语言】两种方式实现冒泡排序算法
题目要求 编写一个C语言程序,实现基本的冒泡排序算法. 算法 冒泡排序,用一句话来总结: 一组数中,相邻的两个数进行比较.交换,将最大(小)数交换至尾(首)部,即完成了一次冒泡排序 要想对N个数字进行 ...
- 冒泡排序的两种方式c语言代码,【C语言】两种方式实现冒泡排序算法
题目要求 编写一个C语言程序,实现基本的冒泡排序算法. 算法 冒泡排序,用一句话来总结: 一组数中,相邻的两个数进行比较.交换,将最大(小)数交换至尾(首)部,即完成了一次冒泡排序 要想对N个数字进行 ...
- 浅析Java语言中两种异常的差别
Java提供了两类主要的异常:runtime exception和checked exception.所有的checked exception是从java.lang.Exception类衍生出来的,而 ...
- r如何连接oracle,R语言 R两种方式连接Oracle
关注微信公共号:小程在线 关注CSDN博客:程志伟的博客 一.通过RODBC包连接oracle 1.首先在本机找到ODBC数据源,点击添加,按照自己的oracle,填写下面三个位置 2.填写完之后,点 ...
- mysql数据存储方式_数据存储在mysql的两种方式
数据存储在mysql的两种方式 发布时间:2020-05-12 16:16:25 来源:亿速云 阅读:250 作者:三月 下文主要给大家带来数据存储在mysql的两种方式,希望这些内容能够带给大家实际 ...
- 原生js更改html,原生js更改css样式的两种方式
原生js更改css样式的两种方式 发布时间:2020-08-30 01:46:17 来源:脚本之家 阅读:148 作者:外婆的彭湖湾 下面我给大家介绍的是原生js更改CSS样式的两种方式: 1. 通过 ...
- putextra 传递对象_intent.putextra用法 使用Intent传递对象的两种方式 - 电脑常识 - 服务器之家...
intent.putextra用法 使用Intent传递对象的两种方式 发布时间:2017-05-22 来源:服务器之家 Intent 的用法相信你已经比较熟悉了,我们可以借助它来启动活动.发送广播. ...
最新文章
- 【报错笔记】maven项目启动时报错
- mikrotikROS系统的几种安装方法
- 阿里云大数据利器Maxcompute-使用mapjoin优化查询
- html5如何新建定义站点,HTML5技术教程:创建新作品_HTML5教程_创建作品_添加元素_课课家...
- 消费新品周报 | 歌帝梵携手大白兔推出全冰品系列;MK推出新一代智能触屏腕表...
- android中关于keytool 错误:java.lang.Exception:密钥库文件不存在: 解决步骤
- macOS 安卓模拟器 Genymotion 安装
- WinUsb_ReadPipe和WinUsb_WritePipe函数功能理解
- 不习惯的 Vue3 起步六 の Echarts绘制下钻地图
- jni调用java数组导致VM aborting,安卓程序莫名闪退
- Linux下按照时间段过滤日志
- IG-REPORT企业智能报表 测试记录
- 股票交易下单接口-接口设计规则
- 对抗网络之PG-GAN,无条件下生成更真实的人脸图像[3]
- linux查看是否已安装GCC及安装GCC
- 外刊01 How is COVID-19 affecting our mental health?
- 预装Windows 7系统如何验证系统正版授权
- 高斯玻色采样enhance量子近似优化算法
- 双系统win10自动改动EFI启动顺序解决方案
- 动森amiibo数据_动森岛屿规划神器来了!还有 6 款超实用的辅助工具
热门文章
- js设置ajax执行顺序,2018-03-10fiddler替换js、js的ajax方法执行顺序
- Arm v9的牙膏挤出来了,超大核机器学习性能x2,小核4年来终于更新
- 这家刚拿了1亿美元的基金会,要证明“21世纪是生物的世纪”
- 图神经网络世界冠军团队手把手授课,7天搞定图神经网络!
- 5000量子比特的商用计算平台发布!D-Wave:这是商业应用的唯一选择
- GAN不只会造假:捕获数据中额外显著特征,提高表征学习可解释性,效果超越InfoGAN | IJCAI 2020...
- centos 的epel源配置
- w3m - 命令行下的浏览器
- 【IBM Tivoli Identity Manager 学习文档】11 TIM设计思路介绍
- 您的安全设置不允许网站使用安装在您的计算机上的ActiveX控件的解决方法