背景
我们知道,在美股的交易时间是分冬令时和夏令时的。而在冬令时、夏令时对应的北京交易时段也是不一样的。
如下所示,其中时间都是北京时间。
- 冬令时(每年3月第一个星期六到11月第二个星期日)
- 盘前时段:17:00-22:30
- 盘中时段:22:30-05:00
- 盘后时段:05:00-09:00
- 夏令时(每年3月第二个星期日到11月第一个星期六)
- 盘前时段:16:00-21:30
- 盘中时段:21:30-04:00
- 盘后时段:04:00-08:00
那么为何会有这样的差异的,那就是GMT或者UTC的机制了。
简介
GMT
GMT
,全称是Greenwich Mean Time
,中文翻译就是格林威治标准时间。它是以格林威治的子午线(本初子午线)将地球划分为东西半球的经度零度。其是全球作为标准的参考时间。
UTC
UTC
,全称是Coordinated Universal Time
,中文翻译是世界协调时间(又称世界标准时间、世界统一时间)。是经过平均太阳时(以格林威治时间GMT为准)、地轴运动修正后的新时标以及以「秒」为单位的国际原子时所综合精算而成的时间,其计算过程相当严谨精密,因此因此若以「世界标准时间」的角度来说,UTC
比GMT
更准确。
时区
全球共分为24个时区,每个时区都有自己的本地时间。但是每个时区的时间其实都是以UTC
标准时间进行转换的。
比如北京时间其实是指东八区的时间,纽约时间在夏令时采用的是西四区的时间、冬令时采用的是西五区的时间。
转换
前面介绍完之后几个概念之后,我们来看一下时区之间的转换。比如在Objective-C
中我们通过以下代码可以获得当前时间。
NSDate *date = [NSdate date];
NSLog("Current Time:%@", date); // 输出:2020-06-25 08:53:47 +0000
可以看到以上方法获得的是2020-06-25 08:53:47 +0000
。这个+0000
指的是左侧的时间相比UTC
标准时间相差了多少。比如我们如果看到+0800
就是指相差8个小时。公式如下:
UTC + 时差 = 本地时间
时区差东为正,西为负。在此,把东八区时区差记为 +0800, 西四区时区差为-0400。所以前面代码输出的其实就是UTC
时间,那么转换为北京时间计算即:0853 + 0800 = 1653,所以结果为:2020-06-25 16:53:47 +0800
同理西四区的时间计算为:0853 + (-0400) = 0453,也就是结果是:2020-06-25 04:53:47 -0400
这里计算要特别注意以下,结果为负值的情况,比如阿拉斯加标准时间(西九区:-0900)。按照上面的公式计算结果为:-0007。
其表示前一天的时间,此时要进行加2400来处理,计算结果为:0853 + (-0900) + 2400 = 2353。
那么对于西九区时间就是:2020-06-24 23:53:47 -0900
美国时间转北京时间
美国在不同的时间内采用不同的时区来表示时间,从而导致美股的交易时间段,也会造成差异。
首先我们以夏令时来计算一下其对应的北京时间。
在夏令时时,美国采用的是西四区(-0400)作为美国的标准时间。所以我们可以利用下面公式变换:
UTC = 北京时间 - (+0800) = 纽约时间 - (-0400)
则北京时间和纽约时间的关系就是:
北京时间 = 纽约时间 + (+1200)
同理在冬令时,美国采用的是西五区(-0500)时间作为美国标准时间。所以其计算相比夏令时延长一个小时:
北京时间 = 纽约时间 + (+1300)
所以按照上面公式,我们可以计算出美美股交易时间段对应的北京时间:
总结
好了,前面通过介绍GMT
和UTC
以及在不同时区下其之间的转换关系,我们了解了美股交易时间在冬令营和夏令营下的北京时间差别。
简单总结来就是:美股交易时间段在美国炒股人员来看是没有变化的,其都是09:30-16:00,但是由于其采用了不同的时区来表示这个时间区间,所以对于中国以东八区时间来交易的投资者来讲,时间就会1个小时的差异了。