【转】Windows与Linux(Ubuntu)双系统时间不一致的解决方法
当在嵌入式Linux里面备份文件时候,在备份的时候,PC(win7)和开发板的时间都是9:30,但是在开发板发现文件创建时间是9:30,然后u盘插在PC(win7)上,发现文件创建时间是1:30,为什么相差8个小时?
世界协调时间(Universal Time Coordinated,UTC),GPS系统中有两种时间区分,一为UTC,另一为LT(地方时)。两者的区别为时区不同,UTC就是0时区的时间,地方时为本地时间,如北京为早上八点(东八区),UTC时间就为零点,时间比北京时晚八小时,以此计算即可.
UTC相当于本初子午线(即经度0度)上的平均太阳时,过去曾用格林威治平均时(GMT)来表示.北京时间比UTC时间早8小时,以1999年1月1日0000UTC为例,UTC时间是零点,北京时间为1999年1月1日早上8点整。
GMT(Greenwich Mean Time)是格林尼治平时:由于地球轨道并非圆形,其运行速度又随着地球与太阳的距离改变而出现变化,因此视太阳时欠缺均匀性。视太阳日的长度同时亦受到地球自转轴相对轨道面的倾斜度所影响。为着要纠正上述的不均匀性,天文学家计算地球非圆形轨迹与极轴倾斜对视太阳时的效应。平太阳时就是指经修订后的视太阳时。在格林尼治子午线上的平太阳时称为世界时(UT0),又叫格林尼治平时(GMT)。由于两个系统设定时间时以主板CMOS内的时间为依据,但却有不同的时间计算标准。所以导致了系统时间的纠纷问题。
Linux和苹果操作系统以当前主板CMOS内时间做为格林威治标准时间,再根据系统设置的时区来最终确定当前系统时间(如时区设置为GMT+08:00北京时间时以及当前CMOS时间为03:00,那么系统会将两个时间相加得出显示在桌面的当前系统时间为11:00)。
Windows 操作系统却直接把CMOS时间认定为当前显示时间,不根据时区转换。这样每调整一次系统时区,系统会根据调整的时区来计算当前时间,确定后,也就同时修改了CMOS内的时间(即每调整一次时区,设置保存后,CMOS时间也将被操作系统改变一次,注意不同操作系统调整时间后,也会同时改变CMOS时间,这一点是共通的)。
这里我们且不论两种时间计算标准的好差,而仅让Windows认定CMOS时间为格林威治标准时间来消除操作系统之间认定时间的差异,从而解决Windows操作系统与不同操作系统并存时出现的时间矛盾。
也就是说,UTC即Universal Time Coordinated,协调世界时GMT即Greenwich Mean Time,格林尼治平时在这里,你可以把UTC认为是GMT+0。Windows(XP和VISTA)和(Linux/Unix/Mac)缺省看待系统硬件时间的方式是不一样的:
* Windows把系统硬件时间当作本地时间(local time),即操作系统中显示的时间跟BIOS中显示的时间是一样的。
* Linux/Unix/Mac把硬件时间当作UTC,操作系统中显示的时间是硬件时间经过换算得来的,比如说北京时间是GMT+8,则系统中显示时间是硬件时间+8。
这样,当PC中同时有多系统共存时,就出现了问题。假如你的Ubuntu和WindowsXP中设置的时区都为北京时间东八区,而你在Ubuntu中把当前系统时间更改为9:00AM。则此时硬件中存储的实际是UTC时间1:00AM。这时你重启进入Windows后,你会发现windows系统中显示的时间是1:AM,比Ubuntu中慢了八个小时。同理,你在Windows中更改或用网络同步了系统时间后,再到Ubuntu中去看,系统就会快了8小时。在实行夏令时的地区,情况可能会更复杂些。原因知道了,那怎么来解决这种冲突呢。一种就是让Windows把硬件时间当作UTC,与Linux/Unix/Mac保持一致。另一种就是让linux/Unix/Mac把系统时间当作本地时间,与Windows保持一致。
那么在Windows下的修改方法如下:
即在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\中添加一项数据类型为REG_DWORD,名称为RealTimeIsUniversal,值设为1。
也可用以下命令行:
@echo off
color 0a
Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1
echo.
echo 已让Windows识别存贮在主板CMOS内的时间为格林威治标准时间(GMT),即系统根据CMOS时间和设置的时区来确定当前系统的时间。
echo.
pause
而在Ubuntu下的修改方法如下:
Ubuntu中不使用UTC时间,而启用本地时间,需要修改 /etc/default/rcS ,修改动作如下:
在Ubuntu中,打开终端:
sudo gedit /etc/default/rcS //这里是设置时间用的 ("UTC=").
将: UTC=yes 改为: UTC=no 保存即可解决问题
【转】Windows与Linux(Ubuntu)双系统时间不一致的解决方法的更多相关文章
- Windows与Linux/Mac系统时间不一致的解决方法
Windows与Linux/Mac系统时间不一致的解决方法 分类: linux2012-02-12 14:25 1691人阅读 评论(1) 收藏 举报 windowsubuntusystemlinux ...
- Windows + Ubuntu双系统时间不一致
在安装Ubuntu和Windows双系统的情况下,Ubuntu的时间总会和Windows的时间相差8小时,原因在于widows认为BIOS时间是本地时间,Ubuntu认为BIOS时间是UTC时间 su ...
- Win7+Ubuntu双系统时间不一致
转自:http://blog.sina.com.cn/s/blog_55546df90100xkf3.html 最近装了ubuntu和win7双系统,但是发现每次进入win7后时间总是不对,总是比当地 ...
- Windows 下安装 Ubuntu 双系统(更新)
Windows + Ubuntu 16.04 ---> 双系统 前言:本篇文章是对之前文章的更新,更新的主内容是把原来用手机拍摄的图片换成了虚拟机的截图,以及对磁盘划分的新的见解和一些使用感受, ...
- Windows和Ubuntu双系统时间相差8个小时的问题
由于要学编程,在windows 10上安装了Ubuntu16.04双系统.但是却造成windows时间老是比实际时间慢八个小时,Ubuntu会与网络同步时间,但是在程序中调用主板时间时仍然是UTC时间 ...
- Ubuntu 16.04和win10双系统时间不一致解决办法
windows10和ubuntu16.04双系统,装完后,在windows下时间不对,之前的老办法是: sudo gedit /etc/default/rcS 2 utc=yes 改成utc=no 然 ...
- windows7 ubuntu双系统采用windows7 mbr引导方法
在安装有Windows7系统上的机器,安装用Ubuntu后,开机会自动用grub2 引导.对于使用双系统的用户来说,用MBR和grub2都差不多,但是,我的机器上有三个系统,需要用MBR来引导变色龙, ...
- Windows与Linux的双系统的安装顺序及Linux的补救办法
如果安装多重引导,最好先安装Windows再安装Linux系统,因为: Linux在安装的时候,你可以选择将引导加载程序安装在MBR或个别分区的启动扇区,而且Linux的loader可以手动设置菜单( ...
- 解决ubuntu和win10双系统时间不一致
1.在ubuntu下安装ntpdate sudo apt install ntpdate 2.设置同步windows时间 sudo ntpdate time.windows.com 3.把时间更新到硬 ...
随机推荐
- JavaScript 判断一个字符串是否在另一个字符串中
传统上,JavaScript只有indexOf方法,可以用来确定一个字符串是否包含在另一个字符串中.ES6又提供了三种新方法. includes():返回布尔值,表示是否找到了参数字符串. start ...
- (转)iOS7界面设计规范(13) - UI基础 - 与iOS的系统整合
突然就到了周日傍晚.你永远不会知道自己的生活在接下来的一周当中能够发生多少变化:各种不可预知性所带来的更多是快感还是焦虑与不安,冷暖自知.相比之下,白天工作当中那些需求列表与排期文档就显得那么可爱了, ...
- 斐波那契数列 Php练手
数列从第三项开始,每一项都等于前两项之和. F0=0,F1=1,Fn=F(n-1)+F(n-2) 递归版和非递归版. <?php function fib($n){ $array = array ...
- cocos2d-x 3.6版连连看
写个连连看来讲游戏开发,我认为实例解说效果会好一些. 终端以下cd到源代码文件夹,敲命令: cocos new LLK -p com.goonear.llk -l cpp -d ./Goonear 脚 ...
- Unity发送短信
闲来无事,觉得用uinity来发送短信挺有意思的,所以自己差了点资料,看看能否实现,结果还真的可以!废话不多说,直接码! 1,新建一空工程,我们就简单的使用UGUI搭建一个丑陋的界面吧! 2,界面极其 ...
- android EditText插入字符串到光标所在位置
EditText mTextInput=(EditText)findViewById(R.id.input);//EditText对象 int index = mTextInput.getSelect ...
- vs2015升级后台mvc视图编辑器默认不是razor视图引擎问题
1.问题的原因 vs2013中创建的mvc4.0应用默认使用的razor2.0版本 在vs2015编辑器中默认使用的razor视图引擎是3.0版本 解决方案: 第一步:升级mvc应用的版本为mvc5. ...
- 脚本化HTTP
1.HTTP: 定义:超文本传输协议 (HTTP-Hypertext transfer protocol) 是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协 ...
- MFC下的aero效果学习笔记
最近想在MFC中用下aero 首先参考了 http://blog.csdn.net/polytechnic/article/details/5696797 中的一系列的步骤,进行了初步学习 但是对于其 ...
- Java系列--目录
因工作项目的需要,从C#转Java也有很长一段时间了,决定记载归纳一下这半年到底学了什么,到了一个什么程度,当然其间可能会有一些关于.NET的对比. 这是这个系列的目录,我准备按照我的归纳学习点来写, ...