分享

Linux/Windows 时间不一致问题

 yusihai719 2017-03-22

在使用Linux/Windows的双系统时,经常发现时间不正确:liunx下的时间或windows下的时间不对,往往相差8小时。在此给出解释和推荐解决方案。

名词解释

  • CST:(China Standard Time,UTC+8:00) 中国沿海时间(北京时间)
  • UTC:(Universal Time Coordinated,UTC) 世界协调时间
  • GMT:(Greenwich Mean Time ,GMT)格林威治时间
  • LT:(locale time)本地时间

GPS 系统中有两种时间区分,一为UTC,另一为LT(地方时)两者的区别为时区不同,UTC就是0时区的时间,地方时为本地时间,如北京为早上八点(东八区),UTC时间就为零点,UTC时间比北京时晚八小时,以此计算即可。

我们可以认为格林威治时间就是时间协调时间(GMT=UTC)

Windows 时间

Windows启动时,读取bios的时间作为LT时间,如果你按照系统时选择时区为中国上海,也就是CST时间。windows时间总是本地的!

  • 修改时间时,Windows会同时修改Windows系统时间和Bios的时间。
  • 设置区域时,仅仅影响应用软件的时区识别!

Linux 时间

Linux启动时,读取bios的时间作为UTC时间(这一点可以设置,为了守护进程良好地运行,一般设为UTC时间)。Linux 下有两个常用的时间命令:

  • date命令:显示、修改 os 时间;但不修改bios时间!
  • hwclock命令:显示、修改bios时间,但不会影响 os 时间!

时区设置

通过命令

tzselect# 仅限于RedHat Linux 和 CentOStimeconfig# 适用于Debiandpkg-reconfigure tzdata

通过配置文件

# Asia 为主时区,Shanghai为次时区,/etc/localtime为时区配置文件cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

date

  1. 查看OS时间

    # 查看OS时间 date # 以UTC时间显示 date -u date --ut date --universal # 查看时区 date -R
  2. 设置时间和日期

    # 将系统日期设定成1996年6月10日的命令 date -s 06/22/96 # 将系统时间设定成下午1点52分0秒的命令 date -s 13:52:00 # 以UTC时间进行设置 date -u -s <time string>
  3. 将当前时间写入BIOS,使时间设置重启后仍然有效

    hwclock -w

hwclock

hwclock用来查看和设置BIOS的时间,例如:

# 查看bios的时间hwclock --show 或 hwclock -r# 如何以utc时间显示bios时间hwclock --utchwclock -u# 设置BIOS时间hwclock --set --date=

另外,电子时钟的时间是不准的,一般有固定的偏移。因os时间往往会进行网络同步,在设置硬件时钟时会计算时间偏移,并更新时间偏移文件/etc/adjtime

我们可以手动同步BIOS时间与OS时间:

# 使用BIOS时间更新OS时间hwclock --hctosys# 使用OS时间更新BIOS时间hwclock --systz

转载请注明来源: http:///2015/05/02/linux-windows-time.html

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多