js时区转换
UTC(GMT)
整个地球分为二十四时区,每个时区都有自己的本地时间。在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC, Universal Time Coordinated)。UTC与格林尼治平均时(GMT, Greenwich Mean Time)一样,都与英国伦敦的本地时相同。
本地时间
北京时区是东八区,领先UTC八个小时,在电子邮件信头的Date域记为+0800。
时间转化为UTC,可以使用一下公式:
UTC + 时区差 = 本地时间
** 注意 **:
- 时区差格式为 符号+ 24小时制数字 + 分钟,如:北京与UTC时差记为+0800
- 时区差东为正,西为负。
如现在时间为Date: Fri, 08 Nov 2002 09:42:22 +0800 ,根据公式
UTC + 时区差 = 本地时间
UTC = 本地时间 - 时区差
0942 - (+0800) = 0142
即UTC是当天凌晨一点四十二分二十二秒
getTimezoneOffset
在Javascript中,Date对象提供了获取本地与UTC(GMT)时间差的函数getTimezoneOffset,该方法可返回格林威治时间和本地时间之间的时差,以分钟为单位。
var date = new Date();
date.getTimezoneOffset(); //-480
注意这里和时区差有区别,这里返回的是GMT时间减去本地时间的差,所以GMT时间应该为
GMT = 本地时间 + getTimezoneOffset();
582 + (-480) = 102
即UTC是当天凌晨一点四十二分二十二秒