999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

為什么計算機起始時間是1970年1月1日

2020-07-29 12:11:31傅一平
計算機與網(wǎng)絡(luò) 2020年10期
關(guān)鍵詞:定義標(biāo)準(zhǔn)

傅一平

1970-01-01對于開發(fā)者來說都是不陌生的,有些系統(tǒng)對于時間的處理如果不夠好的話,就可能把時間顯示成1970-01-01,所以經(jīng)常有用戶看到1970-01-01這個時間。

這種情況其實是很簡單就可以復(fù)現(xiàn)的,當(dāng)我們嘗試使用以下Java代碼定義時間:

1.Date date = new Date(0);

2.System.out.println(date)。

打印出來的結(jié)果:

Thu Jan 01 08:00:00 CST 1970

通過Date的構(gòu)造函數(shù)的Java Doc說明我們也能得到一些蛛絲馬跡:

該構(gòu)造函數(shù)接收用戶指定一個毫秒數(shù),如new Date(1000),表示獲得一個距離"epoch"有1000 ms的時間。在Java中,這個時間是1970,00:00:00 GMT。

時間戳

一切要從Unix操作系統(tǒng)誕生開始說起。

1969年8月,貝爾實驗室的程序員肯湯普遜利用妻兒離開一個月的機會,開始著手創(chuàng)造一個全新的革命性的操作系統(tǒng),他使用B編譯語言在老舊的PDP-7機器上開發(fā)出了Unix的一個版本。

隨后,湯普遜和同事丹尼斯里奇改進了B語言,開發(fā)出了C語言,重寫了Unix,新版于1971年發(fā)布。

在Unix被發(fā)明出來之后,需要在Unix上表示時間,就需要想辦法定義一個能表示一份數(shù)據(jù)在某個特定時間之前已經(jīng)存在的、完整的、可驗證的數(shù)據(jù)來表示時間。

于是,Unix時間戳被定義出來,即通過當(dāng)前時間和一個"紀(jì)元時間"進行對比,其間相差的秒數(shù)作為時間戳。

為了讓Unix時間戳表示時間這種方式用的盡可能久,最初就把Unix誕生的時間1971-1-1定義成"紀(jì)元時間"。

時間戳修改

除了開始時間是1971-1-1而不是1970-1-1外,最初的時間戳也不是每增加1秒時間戳就變動一次,而是每1/60秒都會改變一次時間戳。

另外,Unix是在1971年發(fā)明出來的,當(dāng)時的計算機系統(tǒng)是32位,如果用32表示有整數(shù),那么最大值是2147483647(2^31-1)。

那么,簡單做一個數(shù)學(xué)計算,如果用當(dāng)時的時間戳計算方式來表示時間的話,Unix時間戳最多可以使用4294967296/(60*60*24)/60 = 828.5天(一天有60*60*24秒,每1/60秒會占用一個時間戳)。

想象一下,設(shè)計出一個計算機系統(tǒng),但時間只能表示828.5天,是不是很難讓人接受,但是最初的Unix確實是這樣的。

后來,Unix的開發(fā)者們也漸漸意識到這樣不是長久之計,于是開始做出改變。

最開始,他們將每1/60 s改變一次時間戳修改成每1 s改變一次時間戳。這樣時間戳可以表示的時間就又放大了60倍。這時候有828.5*60/365 = 136年。

這時候,一方面136年已經(jīng)足夠久了,紀(jì)元時間稍微向前調(diào)一下影響也不大。另外一方面為了方便記憶和使用。

于是就把紀(jì)元時間從1971-01-01調(diào)整到1970-01-01了。

于是,隨著后面各種開發(fā)語言的誕生,就都沿襲了1970-1-1這個設(shè)定。

所以,通常我們說的時間戳,就是指格林威治時間(GMT)1970年01月01日00時00分00秒起至現(xiàn)在的總秒數(shù)。

紀(jì)元時間與時區(qū)

我們前面所提到的紀(jì)元時間的設(shè)置,都是基于格林威治標(biāo)準(zhǔn)時間的,即GMT時間。

但是世界上各個地區(qū)有自己的時區(qū),都需要基于GMT時間進行調(diào)整。

1970-01-01 08:00:00的顯示顯然是受到了時區(qū)的影響,因為中國處于東八區(qū),所以時間會比標(biāo)準(zhǔn)時間早8 h,而標(biāo)準(zhǔn)時間應(yīng)該是1970-01-01 00:00:00。

應(yīng)該很多人都記得《蘋果“1970事件”》,在幾年前,一個名為vista980622的網(wǎng)友在國外網(wǎng)站Reddit的論壇上發(fā)表了一篇“把iPhone時間改成1970年1月1日,手機即可永遠(yuǎn)變磚”的帖子。

在該帖子發(fā)布不久,很多人都不相信,抱著試試看的態(tài)度將手機的時間設(shè)置成1970年1月1日,結(jié)果手機關(guān)機后重新開機真的變磚了。

因為我們處于東八區(qū),時間比標(biāo)準(zhǔn)時間要快8 h,如果我們把時間調(diào)整成1970-01-01 00:00:00,那么標(biāo)準(zhǔn)時間就會是比這個時間少8小時,即1969年12月31日16時0分0秒。

但是,iOS設(shè)備是以UTC時區(qū)(GMT時間)的1970年1月1日0點0時0秒為界限,數(shù)值為0,用戶把時間調(diào)整到1969年12月31日16時0分0秒,系統(tǒng)就要出現(xiàn)負(fù)值的時間。

系統(tǒng)版本為iOS 8.0至iOS 9.3 beta3,并且搭載64位處理器(即處理器為A7-A9X的設(shè)備)的蘋果設(shè)備都會觸發(fā)這個Bug,導(dǎo)致變磚。

猜你喜歡
定義標(biāo)準(zhǔn)
2022 年3 月實施的工程建設(shè)標(biāo)準(zhǔn)
永遠(yuǎn)不要用“起點”定義自己
海峽姐妹(2020年9期)2021-01-04 01:35:44
定義“風(fēng)格”
忠誠的標(biāo)準(zhǔn)
美還是丑?
你可能還在被不靠譜的對比度標(biāo)準(zhǔn)忽悠
一家之言:新標(biāo)準(zhǔn)將解決快遞業(yè)“成長中的煩惱”
專用汽車(2016年4期)2016-03-01 04:13:43
成功的定義
山東青年(2016年1期)2016-02-28 14:25:25
2015年9月新到標(biāo)準(zhǔn)清單
修辭學(xué)的重大定義
主站蜘蛛池模板: 亚洲美女久久| 天天色综网| 九九香蕉视频| 91精品网站| 亚洲婷婷丁香| 久99久热只有精品国产15| 色妺妺在线视频喷水| 国产美女在线免费观看| 国产精品福利尤物youwu | 青青青国产视频手机| 美美女高清毛片视频免费观看| 国产亚洲成AⅤ人片在线观看| 成人免费一区二区三区| 国产办公室秘书无码精品| 成年A级毛片| 在线免费亚洲无码视频| 中国特黄美女一级视频| 成人精品视频一区二区在线| 欧美亚洲综合免费精品高清在线观看| 国产精品免费露脸视频| 国产亚洲欧美日韩在线一区| Jizz国产色系免费| 亚洲码一区二区三区| 操美女免费网站| 欧美国产综合视频| 国产乱人免费视频| 国产精品永久在线| 国产精品国产主播在线观看| 亚洲中文字幕久久无码精品A| 91亚洲精品第一| 毛片在线播放网址| 四虎成人在线视频| 亚洲精品天堂自在久久77| 日韩中文精品亚洲第三区| 91精品国产91欠久久久久| 欧美激情成人网| 国产一区在线视频观看| 日本黄色a视频| 东京热高清无码精品| 精品久久久久久久久久久| 92午夜福利影院一区二区三区| 亚洲国产精品一区二区第一页免| 国产微拍一区二区三区四区| 99无码中文字幕视频| 少妇极品熟妇人妻专区视频| 国产成本人片免费a∨短片| 欧美yw精品日本国产精品| 亚洲国产天堂在线观看| 国产欧美另类| 一级爱做片免费观看久久| 国产成人无码AV在线播放动漫| 国产成人免费手机在线观看视频| 久久伊人色| 91久久国产综合精品| 成人夜夜嗨| 丁香五月婷婷激情基地| 午夜激情婷婷| 99久久精品国产麻豆婷婷| 日韩区欧美区| 精品国产自在现线看久久| 国产精品夜夜嗨视频免费视频| 精品国产免费观看一区| 国产成人综合久久精品尤物| 婷婷五月在线视频| 秋霞午夜国产精品成人片| 女人av社区男人的天堂| 国内精自视频品线一二区| www.99精品视频在线播放| 国产精品亚洲五月天高清| 天天躁夜夜躁狠狠躁图片| 白浆免费视频国产精品视频| 91美女视频在线| 成人亚洲天堂| 亚洲大尺码专区影院| 亚洲国产日韩在线成人蜜芽| 欧美伦理一区| 婷婷激情亚洲| 99视频免费观看| 欧美亚洲中文精品三区| 免费国产高清精品一区在线| 国产国拍精品视频免费看 | 久青草免费在线视频|