時間標准基礎知識UTC和ISO8601


引言

 過去世界各地原本各自訂定當地時間,但隨着交通和電訊的發達,各地交流日益頻繁,不同的地方時間,造成許多困擾,於是在西元1884年的國際會議上制定了全球性的標准時,明定以英國倫敦格林威治這個地方為零度經線的起點(亦稱為本初子午線),並以地球由西向東每24小時自轉一周360°,訂定每隔經度15°,時差1小時。而每15°的經線則稱為該時區的中央經線,將全球划分為24個時區,其中包含23個整時區及180°經線左右兩側的2個半時區。東經的時間比西經要早,也就是如果格林威治時間是中午12時,則中央經線15°E的時區為下午1時,中央經線30°E時區的時間為下午2時;反之,中央經線15°W的時區時間為上午11時,中央經線30°W時區的時間為上午10時。如果兩人同時從格林威治的0°各往東、西方前進,當他們在經線180°時,就會相差24小時,所以經線180°被定為國際換日線,由西向東通過此線時日期要減去一日,反之,若由東向西則要增加一日。

UTC

十七世紀,格林威治皇家天文台為了海上霸權的擴張計畫而進行天體觀測。到了1884年決定以通過格林威治的子午線作為划分地球東西兩半球的經度零度。觀測所門口牆上有一個標志24小時的時鍾,顯示當下的時間,對全球而言,這里所設定的時間是世界時間參考點,全球都以格林威治的時間作為標准來設定時間,這就是我們耳熟能詳的「格林威治標准時間」(Greenwich Mean Time,簡稱G.M.T.)的由來。

UTC指的是Coordinated Universal Time- 世界協調時間(又稱世界標准時間、世界統一時間),是經過平均太陽時(以格林威治時間GMT為准)、地軸運動修正后的新時標以及以「秒」為單位的國際原子時所綜合精算而成的時間,計算過程相當嚴謹精密,因此若以「世界標准時間」的角度來說,UTC比GMT來得更加精准。其誤差值必須保持在0.9秒以內,若大於0.9秒則由位於巴黎的國際地球自轉事務中央局發布閏秒,使UTC與地球自轉周期一致。所以基本上UTC的本質強調的是比GMT更為精確的世界時間標准,不過對於現行表款來說,GMT與UTC的功能與精確度是沒有差別的。UTC時間+時區偏移量就是當地時間,如北京東8區(GMT+8),則UTC時間+08小時就表示北京時間。

夏令時, 「夏日節約時間」Daylight Saving Time(簡稱D.S.T.),是指在夏天太陽升起的比較早時,將時鍾撥快一小時,以提早日光的使用,夏天過去再將時鍾調慢一小時,在英國則稱為夏令時間(Summer Time)。這個構想於1784年由美國班傑明·富蘭克林提出來,1915年德國成為第一個正式實施夏令日光節約時間的國家,以削減燈光照明和耗電開支。

ISO8601

ISO 8601是日期和時間的表示方法,全稱為《數據存儲和交換形式·信息交換·日期和時間的表示方法》。目前最新為第三版ISO8601:2004,第一版為ISO8601:1988,第二版為ISO8601:2000。 它規定了日期時間的各種表示方法,它的一般原則:

  • 日期和時間值按從最大到最小的時間單位排序:年,月(或周),日,小時,分鍾,秒和秒的分數。因此,表示字典順序對應於時間順序,除了涉及負年份的日期表示。這允許日期自然地由例如文件系統排序
  • 每個日期和時間值都有一個固定的位數,必須用前導零填充
  • 日期時間表示只能有數字或少數特殊字符組成(如“ - ”,“:”,“T”,“W”和“Z”),不允許出現地方寫法,如“1月”或“星期四”等。
  • 表示可以采用兩種格式之一完成 - 具有最少數量分隔符的基本格式或添加了分隔符的擴展格式以增強人類可讀性。該標准指出“應以純文本形式避免使用基本格式”。日期值(年,月,周和日)之間使用的分隔符連字符,而冒號用作時間值(小時,分鍾和秒)之間的分隔符。例如,2009年第1個月的第6天可以以擴展格式寫為“2009-01-06”,或者以基本格式簡稱為“20090106”而不含糊不清。
  • 為了降低准確度,可以從任何日期和時間表示中刪除任意數量的值,但是從最小到最重要的順序。例如,“2004-05”是有效的ISO 8601日期,表示2004年5月(第5個月)。此格式永遠不會代表2004年未指定月份的第5天,也不代表從2004年進入2005年。
  • ISO 8601使用24小時制。HH:MM:SS.SSS,HH:MM:SS,HH:MM,HH為合規的時間格式。
  • 如果沒有指定與UTC關系則假定是本地時間,為安全的跨時區通訊,應制定與UTC關系。若時間是UTC則在時間后面加Z表示,如“09:30UTC”表示為09:30Z”或“0930Z”。其它時區時間則將與UTC的偏移量附加到時間后面,格式為±[hh]:[mm],±[hh] [mm]或±[hh],如“北京時間09:30”表示為"09:30+08:00”或“ 09:30+0800 ” 或“ 09:30+08 ”。
  • 用字母T分割日期和時間。如20180703T224426Z或2018-07-03T22:44:26Z 。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM