【Javascript-基础-Date】本地时间与UTC(GMT)时间转换

时间:2024-01-29 16:52:27

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是当天凌晨一点四十二分二十二秒