unix时间转换北京时间(unix时间转换北京时间怎么设置)
js怎么把unix毫秒数转化为具体的Date啊
js中把 unix时间戳转换为 Date很简单,可以有两种方式:
1、新建一个日期对象并把时间戳作为参数传进去就可以了:
vartimestamp=1371466996.385926;
vardate=newDate(timestamp*1000);//js中是以毫秒为单位要乘以1000
2、对于已经存在的日期对象,调用 setTime方法设置时间戳:
vardate=newDate();
vartimestamp=1371466996.385926;
date.setTime(timestamp*1000);//js中是以毫秒为单位要乘以1000
对于格林威治时间和本地时间, js提供了不同方法(toGMTString(), toUTCString(), toLocaleString())输出,在需要格式化为字符串的时候调用不同方法就可以了。
双系统windows时间不准
出现这种情况的原因是由于两种系统在设定时间时均以主板CMOS中的时间为依据,却又使用不同的时间计算标准。具体来说:
Linux和苹果操作系统(UNIX变种)以当前主板CMOS时间做为国际协调时间(UTC),再根据系统设置的时区来最终确定当前系统时间。比如时区设置为UTC+8(北京时间)而当前CMOS时间为02:00,那么系统会将这两个时间相加,显示在桌面的当前系统时间为10:00。而Windows操作系统则直接把CMOS时间认定为当前显示时间,不根据时区转换。
* Windows把系统硬件时间当作本地时间(Local Time),即操作系统中显示的时间跟CMOS中显示的时间是一样的。
* Linux/Unix/Mac把CMOS时间当作UTC,操作系统中显示的时间是硬件时间经过换算得来的,比如说北京时间是UTC+8,则系统中显示时间是CMOS时间+8。
这样,当电脑中同时有多系统时,就出现了问题。假如你的Linux和Windows中设置的时区都为北京时间东八区,而你在Linux中把当前系统时间更改为10:00,则此时硬件中存储的实际是UTC时间02:00。这时你重启进入Windows后,你会发现windows系统中显示的时间是 02:00,比Linux中慢了八个小时。同理,你在Windows中更改或用网络同步了系统时间后,再到Linux中去看,系统就会快了8小时。那怎么来解决这种冲突呢?一种就是让Windows把CMOS时间当作UTC,与Linux/Unix/Mac保持一致。另一种就是让Linux/Unix/Mac把系统时间当作本地时间,与Windows保持一致。
一、下面先介绍修改windows的设置,(以Windows7 64-bit为例):
使用组合键Win+R打开运行窗口,输入regedit回车,找到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation”,右键新建New> DWORD(32-bit) Value,命名为RealTimeIsUniversal,键值为1