如何得到unix或linux的时间一点小的总结

最近在做项目的时候,需要用到LINUX下的系统时间,然后在网上就找到几个获得LINUX下的系统时间的函数,其中包括struct tm * gmtime(const time_t *timer);
struct tm * localtime(const time_t * timer);
这两个函数,当没太注意这两个函数的区别,在用的时候就出了问题,在这里总结出来,要是用遇到同样问题的朋友,可以很快的解决掉。因为我在遇到这个问题的时候在网上找了半天也没找到,最后在QT的群里的“城市无名者“的提示下,解决的,所以我感觉有必要在这里总结一下。

首先我用的是gmtime();可是在用的时候,就出问题了,因为中gmtime()函数是将日历时间转化为世界标准时间(即格林尼治时间),并返回一个tm结构体来保存这个时间,这样得到的时间比中国地区本地时间会比世界标准时间早8个小时,也就是说要得到中国地区本地时间就要在用gmtime得到的时间后再加8小时,这一点我在网上也找到了。这时又出问题了,这是我自己遇到的,这在网上没找到的,大家应该注意的地方,也就是要说的地方,就是:再用gmtime得到的时间后再加8小时后,时间会超过24小时,例如会出现:2612:30,这样的情况,这就是时间超过了24时表示法。当时我又写了一个最辍的算法,就是判断年月日时分秒,然后如果需要一次加一,写出来之后,“都市无名者”提出在135781012月份和闰年、闰月的情况,我一想这下算法就复杂了,这时“都市无名者”就说了一句,谁让你用这个函数的,我想,也是,那就换个函数,于是就想到,localtime(),别说这个函数还真好用,直接用这个函数,就可以得到本地时间,这点相信大家都知道,这篇文章主要是给使用到gmtime函数的朋友,或遇到以上超过24时的情况,有个参考,所以如果大家要得到LINUX下的系统时间,请使用localtime()函数。

虽然问题解决了,但是又想到了一些问题,就是,既然localtime()可以得到本地时间了,那gmtime()函数在中国的用途在哪呢?只是得到世界标准时间(即格林尼治时间)?请知道的朋友,告之,谢谢了,当然一定是有它的用处的,只是目前我还不太清楚。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值