JS中的UTC,GMT和夏令时之间的差异

时间:2016-05-25 03:59:11

标签: javascript datetime timezone

我已经阅读了很多帖子,并且对UTC,GMT和夏令时感到困惑。

任何人都可以通过UTC,GMT和夏令时来解释javascript Date()对象。

我想知道的要点是,当我们处理日期时,我们需要考虑或不考虑夏令时。

在不同类型的编程语言中,UTC,GMT和夏令时的计算是否相同。

1 个答案:

答案 0 :(得分:1)

UTC是标准,GMT是时区。 UTC使用与GMT相同的偏移量,即+00:00。在讨论偏移时,它们基本上是可互换的。

所有javascript(ECMAScript)日期对象使用自1970-01-01T00:00:00Z以来的UTC毫秒时间值。在不带任何参数的情况下调用Date构造函数时,它会从主机系统获取时间和时区偏移量并计算时间值。因此,生成日期的准确性取决于这些组件的准确性。

使用UTC方法输出日期值(例如getUTCHours,getUTCMinutes等)时,vaules为UTC(GMT)。不使用这些方法时(例如getHours,getMinutes等),主机系统时区偏移量与时间值一起使用,以从UTC时间值生成“本地”值。

是否应用夏令时取决于主机系统设置。无论主机系统的当前规则如何,夏令时的时区更改都应用于所有日期,无论日期的实际偏移量如何(例如,如果当前DST在10月的第一个星期日开始,那么将假定它始终在十月的第一个星期天)。

ECMA-262 §20.3.2中描述了日期对象行为,MDN Date中更清楚(对于某些部分)。