博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
距离1970.1.1零时的时间,需要考虑时差的问题
阅读量:5326 次
发布时间:2019-06-14

本文共 838 字,大约阅读时间需要 2 分钟。

有这样一个问题,希望从一个字符串解析出一个日期比如2013-1-2 12:1:10,然后判断它是在当前时间之前还是之后。 而这个字符串代表的日期我们希望是代表本地时间。 给定任意时间都可以用mktime得到一个给定时间到1970年一月一日零时的秒数,如下: mktime(struct tm * _Tm)1. 这里的_Tm里输入的是本地时间,而计算的时候用的是格林尼治时间 所以相当你把你输入的本地时间变换为格林尼治时间,再去计算到1970年一月一日零时的秒数 2. _Tm里输入的年,是一个距1900年的距离,也就是2013年应该输入113 3. _Tm里输入的月,是从0开始的,也就是说一月输入0 mktime貌似windows上和unix上都有 用GetSystemTime能够获得系统当前时间,如果用它来计算当前时间到1970年一月一日零时的秒数的话,需要注意:SYSTEMTIME systemTime; GetSystemTime( &systemTime ); 这里得到的systemTime,是一个日历时间,包括日月年时分秒,它获得的是格林尼治时间 GetSystemTime是windows上的函数,unix上用time(NULL) 所以你要想利用上述两个得出的结果比较一个特定时间和当前时间的话,需要考虑时差 还有另外一个办法就是time_t  t = time(NULL) //先得到一个格林尼治的时间,是一个从1970年...的秒数struct tm *tms = localtime(&t) //用这个秒数得到一个代表本地时间的日历时间,包含年月日时分秒 最后再利用mktime得到一个由本地时间代表的从1970年...的秒数 这样,两次用mktime都是输入的本地时间,正好可以比较 time 和 localtime貌似windows上和unix上都有

转载于:https://www.cnblogs.com/dbbs/p/3200843.html

你可能感兴趣的文章
jboss内存查看管理 .
查看>>
IN、EXISTS的相关子查询用INNER JOIN 代替--性能优化
查看>>
SQLServer查看存储过程的方法
查看>>
raphael+jquery实现图形拖动实例
查看>>
ASP.NET MVC学习
查看>>
Oracle学习 第28天 存储过程输出结果集
查看>>
第二次冲刺团队进展报告三
查看>>
Linq之关键字基本查询
查看>>
jquery 视觉特效(新闻滚动浏览)
查看>>
Likecloud-吃、吃、吃
查看>>
好程序员应该读的30本书
查看>>
LeetCode 6. ZigZag Conversion
查看>>
linux 挂载存储步骤(以emc 5300为例)
查看>>
Java编程思想 经典评注分享二
查看>>
.bashrc配错刷新导致linux基础命令不能用修复
查看>>
跨域,Content-Type组件
查看>>
jquery笔记
查看>>
SecureCRT 中文乱码问题
查看>>
LightOJ1236 —— 唯一分解定理 + 最小公倍数
查看>>
爬虫初始
查看>>