Lee*_*e D 2 javascript date dst
我正在调查涉及将序列化UTC日期转换为JavaScript日期对象的问题; 我已经阅读了关于这个主题的几个问题,但我仍然不清楚.
首先让我说我在英国.如果我举个例子UTC的时代1473805800000,这是Tue, 13 Sep 2016 22:30:00 GMT,然后使用该值来创建一个JavaScript日期:
var date = new Date(1473805800000);
console.log(date);
Run Code Online (Sandbox Code Playgroud)
控制台日志:
Tue Sep 13 2016 23:30:00 GMT+0100 (GMT Summer Time)
Run Code Online (Sandbox Code Playgroud)
即浏览器已经认识到需要为DST添加额外的小时.
我的问题是,如果我在10月30日之后再次运行相同的代码时钟表已经回来了,我是否仍会得到23:30的相同结果,或者它是22:30,好像它是格林尼治标准时间?换句话说,浏览器是否添加了一小时,因为主题日期是DST还是因为我们目前处于夏令时?
我无法通过组策略更改工作站的系统时钟,否则我会及时跳过它并自行测试.
Javascript Date对象使用的时间值是自1970-01-01T00:00:00Z以来的偏移量(以毫秒为单位).它始终是UTC.
如果为Date构造函数指定了单个数字参数,则将其视为UTC时间值,因此无论系统时区设置如何,都表示同一时刻.
使用时console.log(date),将调用内置的toString方法,该方法生成依赖于实现的字符串,通常使用主机系统的当前时区设置来创建方便的,人类可读的字符串.
系统中的当前夏令时规则用于确定用于"本地"时间的偏移量,因此如果日期从夏令时适用的时间变为不适用的时间,则时间偏移量将同样调整(请注意,夏令时偏移不总是1小时).当前系统偏移量无关紧要,使用的是基于时间值表示的日期和时间的设置.
此外,Date对象非常简单,它们只是一个时间值.时区偏移来自系统设置,它不是Date本身的属性.
所以,给定:
我的问题是,如果我在10月30日之后再次运行相同的代码时钟表已经回来了,我是否仍会得到23:30的相同结果,或者它是22:30,好像它是格林尼治标准时间?
答案是"是",自9月13日BST适用后仍将是23:30.运行代码时无关紧要,只有该日期的系统偏移设置.
| 归档时间: |
|
| 查看次数: |
4265 次 |
| 最近记录: |