日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

为什么计算机日期最早1970,计算机时间基准——1970.1.1

發布時間:2024/3/13 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 为什么计算机日期最早1970,计算机时间基准——1970.1.1 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Unix在1969年誕生之初就采用了一個簡單的設計——以離之最近的新年作為計時零點記錄流逝的秒數。后來這個計時系統被所有的Unix和Unix-like系統繼承了下來。

沈迦勒/編

雨璇/配圖

【Q】劉克澄問:為啥程序猿寫日子都要換算成和1970-1-1的天數?

【A】

沈迦勒答:人們現在使用的計時系統是公歷,計算較為復雜:秒是基本單位,60秒為1分,60分為1小時,24小時是一天…如果計算機內部也使用相同的方式

來計時,

就需要多個變量來分別存放年月日時分秒,不停進位,而且還要處理偶爾的閏年和閏秒以及協調不同的時區。Unix在1969年誕生之初就采用了一個簡單的設

計——以離之最近的新年(1970-1-1

00:00:00,公歷UTC時間,下同)作為計時零點記錄流逝的秒數。后來這個計時系統被所有的Unix和Unix-like系統繼承了下來,而且影響

了許多非Unix系統,便于跨平臺交流數據。POSIX標準,即可移植操作系統接口(Portable Operating System

Interface of

Unix)推出后,這個時間也被稱為POSIX時間。因此在程序中如果時間變量為空、或沒有被正確地初始化,只是簡單地賦一個0值的話,計算結果便會跳到

1970-1-1;這也是現在的所有操作系統上你無法把時間調到1970-1-1之前的原因。

2001-9-9

01:46:40,Unix時間迎來了第一個Billennium(十億禧年),即十進制的1,000,000,000。2005-3-18

01:58:31則是Unix時間的光棍節,1,111,111,111。2033-5-18

3:33:20是第二個Billenniumm,然而第三個則不會毫無障礙的來臨,在那之前,人們先得解決著名的2038年問題。和本世紀初的千年蟲

(Y2K Bug)問題類似,2038年問題(Y2K38

Bug)更隱蔽、更底層、更難解決。計算機內部用來存儲時間的32位二進制數中,最高位被用來表示正負符號,所以它能表示的最大數字是2^31-1,即

2147483647, 對應2038-1-19 03:14:07。到這天的凌晨03:14:08,

Unix時間會溢出并變成十進制的-2147483648,也就是1901-12-13

20:45:52,引起和千年蟲類似的混亂。這將會影響到所有使用這個計時方式的32位系統及其程序語言。要解決這個問題,最簡單的方式是擴展計時的長度

至64位。但愿那時64位系統已成為主流,就可以避免特意去修正這個問題所需要的巨大開銷。沈迦勒/編·圖靈的蘋果

總結

以上是生活随笔為你收集整理的为什么计算机日期最早1970,计算机时间基准——1970.1.1的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。