zoukankan      html  css  js  c++  java
  • 转载,时区设置--非使用Asia/Shanghai等方式

    1、使用NTP对时,ntpdate + IP 成功后,通过 date 指令查看系统时间,比服务器时间晚了8小时。

    系统时间 2018-3-1 08:18:52,服务器时间实际是 16点。

    2、什么原因会造成时间差8小时呢?

    考虑到是时区的问题,查询系统当前的时区设置 date -R,看到系统是 +0000 时区,而中国统一采用北京所在的东8时区,由此造成了8小时的时间偏差。

    3、如何设置Linux系统的时区?

    网上看到 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime,但是这只是针对电脑系统,嵌入式系统中根本找不到 /usr/share/zoneinfo/Asia/Shanghai。

    最后查询资料看到有个 TZ 的环境变量用来设置时区, 在/etc/profile添加这个变量,保存重启。

    TZ=UTC-08:00  #设置为东8区
    export TZ
    hwclock -s
    
    root@freescale ~$ date -R
    Thu, 01 Mar 2018 16:18:08 +0800  # 时区变为 +0800
    root@freescale ~$ ntpdate 172.16.30.2
     1 Mar 16:18:27 ntpdate[952]: step time server 172.16.30.2 offset 0.601111 sec
    root@freescale ~$ date
    Thu Mar  1 16:18:30 UTC 2018    #ntp对时后的时间与ntp服务器时间一致
    

    可见,时区修改成功,对时正常。

    4、修改时区后有另外一个需要注意的地方:程序中通过 timer(NULL)获取的系统秒数会比正常时间 少 8*3600秒,编写查询时间函数时要注意添加

    //get UTC
    secondsFrom1970 = time(NULL);
    //add 8 hour
    secondsFrom1970 += 8*3600; //增加8小时
    	
     
    //convert to Beijing time
    time_utc = localtime(&secondsFrom1970);
    

    ————————————————
    版权声明:本文为CSDN博主「wofeile880_jian」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/wofeile880_jian/article/details/79414421

    补充另一种方法:

    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 有任何问题请随时交流~ Email: araise1@163.com
  • 相关阅读:
    BGP deterministic-med & compare-med
    BGP Always-compare-med & Deterministic-med
    BGP实验 MED , Cyrus
    BGP Lab AS-path prepend last-as
    详解C/C++中volatile关键字
    38、hashtable中解决冲突有哪些方法?
    37、STL中unordered_map和map的区别和应用场景
    36、set和map的区别,multimap和multiset的区别
    35、STL中map的实现
    34、STL中set的实现?
  • 原文地址:https://www.cnblogs.com/seasen/p/15251773.html
Copyright © 2011-2022 走看看