1. 程式人生 > >為什麽計算機很多語言裏的時間都是從1970年1月1日午夜開始計算?

為什麽計算機很多語言裏的時間都是從1970年1月1日午夜開始計算?

letter normal 計算 pro import word lin 外部 程序語言

程序語言受電腦系統影響,而現代電腦系統都受到Unix系統的廣泛影響,而1970年1月1日這個時間正是Unix系統的起始時間(epoch·time)。所以每個時間戳都以自從1970年1月1日午夜(歷元)經過了多長時間來表示

當年的電腦需要一個可靠的外部時鐘同步源,因此早期的Unix系統用一個32位字長表示時間,以1/60秒,即1Hz為時間間隔和外部時間源同步(這道不完全是由於老美的電網頻率是60Hz的緣故,當時的系統主板的晶振就是1Hz)。 結果這個時間所表示的跨度只有大約829天(約2.5年),顯然不夠用,因此需要一個原始的起始(〔紀〕··〔元〕)時間,由於Unix系統源自上時間69年代,第一個正式版本於1970年首次運行在PDP-11上,1971年11月UNIX Programmer‘s Manual(Unix程序員手冊)首次公布,這個手冊裏面提及了起始時間,將它定義為【1971】年1月1日。-- 手冊也承認,該起始時間大約每2.5年就要重新修正一次。

之後系統時間同步間隔被修訂為1秒,這樣32位就可表述約136年的跨度,也正是這個期間(具體年份不祥),起始時間被修訂為1970.1.1 (Unix開發者認為把之前的1971.1.1取整進位到最臨近的年代起始(以每10年一個斷代算),要比1971這個有點不倫不類的時間好),因此從這以後,Unix一直沿用了1970.1.1這個起始時間,而相關的程序也相應的沿用了這個時間,而深受Unix影響的後續操作系統們,如:OS/2, Windows, Mactonish, Linux。。。。都沿用了這個{事實標準}。

為什麽計算機很多語言裏的時間都是從1970年1月1日午夜開始計算?