首先我觉得最重要的一点,是需要明确两个概念。
大家都知道北京是东八区,可以记作UTC+8;而美国阿拉斯加是西九区,记作UTC-9。
一天有24小时,所以分为24个时区:西十一区到东十二区(UTC-11到UTC+12)。
其实以上所说的,都没有考虑一个神奇的东西——夏令时(DST,DaylightSavingTime)。
中国在1986年~1991年实行了6年DST。1992年至今暂停实行。
按照约定好的格式,直接传字符串。例如“2020-05-0419:00:00”直接用字符串上传服务端,即能保持到哪都不变。
怎么表示一个时区呢?我们用格林威治天文台所在的本初子午线(0°经线)作为基准,称之为GMT(GreenwichMeanTime)。其他时区按照与GMT的时差,分为GMT-11(西十一区)到GMT+12(东十二区)。
例如北京太阳起落的时刻,比GMT早了8小时,所以是东八区,记作GMT+8。同理美国阿拉斯加比GMT晚9小时,是西九区,记作GMT-9。
那么GMT和UTC有什么区别呢?先说结论:在编程领域,我们可以认为两者完全相同。GMT+8也就是UTC+8。
UTC使用的是更精确的1s,但是由于地球自转不断变慢,导致GMT的1s不断变长。UTC通过不规则的加入闰秒来抵消地球自转变慢的影响,以保确保与GMT相差不超过0.9秒。
UTC和GMT只是学术上有所区别。在我们的编程领域可以认为两者是一样的。
目前全世界197个国家中,超过半数实行夏令时(近110个国家)。
80年代,中国工业大发展,但发电量却远远不够。于是为了省电决定实行DST。后来有人计算,每年相当于节省了3个三峡大坝的发电量。
THE END