Linux在C语言下的时区设置与修改(二)

前面说到是去同步时区的接口,

从同步的角度来讲,如何获取被设置后的时区,还有一个接口即gettimeofday,

这个接口不仅可以获取时区,posix标准似乎还很好心的在第二个参数中放置了可以用来获取时区和夏冬令时的tz参数,用于返回这两个值。

事情真的有这么简单吗?

墨菲定律又一次出现了,tz这个参数已经被废弃掉了,手册中已经明确说明了glibc不支持这个参数。那么实际使用这个接口,真的可以获取到吗?

写程序验证过后,发现这个接口虽然手册中已明确说不支持,但是实际上仍然是可以获取到得。

但是依赖于这个参数来获取时区,如果程序写完了到各个平台和版本上使用。

你确定晚上睡觉时想起来不会一身冷汗?所以时区的获取到这里已经没法继续了。


二、设置时区

那我们再来看看和这个函数对应的设置时区的接口,那就是settimeofday。

这个接口可以对时间进行设置,但是有一点需要注意,你必须是有root权限才行,否则调用失败那是必须的。

该接口中有tz的参数,可以对时区和夏冬令时进行设置,但是同理tz这个参数已经被废弃掉了,又是一个鸡肋。

之前尝试过准备用这个接口来进行时间,设置系统时间吧,时区就别想了。

查过settimeofday,这是系统调用,tzset则是gilibc提供的实现。


不讲同步了,那么单纯的讨论下时区怎么设置吧,

如果不是编程而是单纯在Linux下设置时区,可以用下面的前两种,后面第三种比较通用哈

1)可以使用tzselect命令࿰

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值