簡介:
古代計時方式
●在遠古時期,人類用來確定時間的方式是一些自然界“相對”亘古不變的周期。如地球的公轉是為一年,月球的公轉是為一月,地球的自轉是為一天等,最早的計時可以追溯到公元前大約2000年,古埃及人利用光線留下的影子用作計時的工具。影子拉得越長,計時越精確。古埃及人修建高聳入雲的大型方尖碑,來追蹤太陽的移動,隨后人們又利用了沙漏、日晷、鍾擺等工具,巧妙地利用一些相對固定而准確的周期來計時
●商朝人開發並使用了一種泄水型水鍾——漏壺。后來又有用蠟燭和線香計時的
●北宋元祐元年(1086年),天文學家蘇頌將渾儀、渾象和報時裝置結合,建造一個划時代的計時工具——“水運儀象台”
●14世紀時,西方國家廣泛使用機械鍾。在十六世紀,奧斯曼帝國的科學家達茲·艾-丁(Taqi al-Din)發明出了機械鬧鍾
●1583年,伽利略提出了著名的等時性理論,即不論擺動幅度的大小,完成一次擺動的時間是相同的。1656年,荷蘭科學家克里斯蒂安·惠更斯(Christiaan Huygens)應用他的理論,設計出了世界第一只鍾擺
●1868年,百達翡麗(Patek Philippe)發明了手表
現代計時方式
●石英晶體受到電池的電力影響時,會產生規律的振動。每秒的振動次數是32768次,可以設計電路來計算振動次數,當計數到32768次時,即計時1秒。1967年,瑞士人發布了世界上首款石英表
●當原子從一個相對高的“能量態”遷至低的“能量態”時,會釋放出電磁波,產生共振頻率。依據此原理,拉比構想出了一種全新的計時儀器——原子鍾(Atomic clock)
●因為原子的共振頻率是固定的。如:銫原子(Caesium133)的固有頻率是9192631770赫茲,約合92億赫茲,對銫原子鍾計數9192631770次,即可測量出一秒鍾。很多國家(包括我國和美國NIST)的標准局,就是用銫原子鍾來作為時間精度標准的。GPS系統也是用銫原子鍾來計時
●2008年誕生的鍶(Strontium87)原子鍾,固有頻率為429228004229873,約合430萬億赫茲,將精度提高到了10的17次方
●2013年鐿元素(ytterbium)制成的原子鍾問世,鐿原子鍾的固有頻率約合518萬億赫茲,精度高達10的18次方。宇宙的年齡為138億年。如果這台鐿原子鍾從宇宙誕生之初就開始計時,直到今天也不會發生1秒的誤差
時間的重要行不言而喻,比如春節你要買票回老家,12306說8點(北京時間)開始售票,你的時間比北京時間卻晚了1分鍾,當你8點去強票肯定是沒有了,中國的春運,別說差1分鍾就是1秒鍾你都搶不到。在計算機里也非常重要,尤其是在集群環境下更是如此,如果多台主機的時間不一致很肯出現問題。
上面說了這么多下面我們進入正題:
一、先了解幾個概念
GMT:Greenwich Mean Time,即格林尼治標准時間,也就是世界時。GMT 以地球自轉為基礎的時間計量系統,但由於地球自轉不均勻,導致 GMT 不精確,現在已經不再作為世界標准時間使用。
UTC:Universal Time Coordinated,即協調世界時,又稱世界統一時間、世界標准時間、國際協調時間。由於英文(CUT)和法文(TUC)的縮寫不同,作為妥協,簡稱UTC。UTC 是以原子時秒長為基礎,在時刻上盡量接近於 GMT 的一種時間計量系統。為確保 UTC 與 GMT 相差不會超過 0.9 秒,在有需要的情況下會在 UTC 內加上正或負閏秒。UTC 現在作為世界標准時間使用。
時區:為了克服不同地區時間上的混亂,1884年在華盛頓召開的一次國際經度會議(又稱國際子午線會議)上,規定將全球划分為24個時區(東、西各12個時區)。規定英國(格林尼治天文台舊址)為中時區(零時區)、東1—12區,西1—12區。每個時區橫跨經度15度,時間正好是1小時。最后的東、西第12區各跨經度7.5度,以東、西經180度為界。每個時區的中央經線上的時間就是這個時區內統一采用的時間,稱為區時,相鄰兩個時區的時間相差1小時。
例如,中國東8區的時間總比泰國東7區的時間早1小時,而比日本東9區的時間晚1小時。因此,出國旅行的人,必須隨時調整自己的手表,才能和當地時間相一致。凡向西走,每過一個時區,就要把表撥慢1小時(比如2點撥到1點);凡向東走,每過一個時區,就要把表撥快1小時(比如1點撥到2點)。並且規定英國(格林尼治天文台舊址)為本初子午線,即零度經線。
RTC:Real-Time Clock,即實時時鍾,在計算機領域作為硬件時鍾的簡稱。
二、電腦系統中有兩個時間:
硬件時間:保存在主板BIOS中,信息比較少沒時區、夏令時的概念
系統時間:又系統維護,獨立於硬件時間,擁有時區、夏令時等信息,系統時間會參考硬件時間,在每次電腦開機的時候都會讀取硬件時間從而得到系統時間。
Windows 與 Linux 參考硬件時間的方式不同。Windows 把電腦的硬件時鍾看成是本地時間,即 硬件時間 = Local Time,Windows系統會直接顯示硬件時間;而Linux系統則是把電腦的硬件時鍾看成 UTC 時間,即 硬件時間 = UTC,那么Linux系統顯示的時間就是硬件時間加上時區才是Local Time。所以你會發現BIOS時間與Linux時間會出現相差8小時的問題。
在Windwos中,系統時間的設置很簡單,界面操作,通俗易懂,而且設置后,重啟,關機都沒關系。系統時間會自動保存在BIOS時鍾里面,啟動計算機的時候,系統會自動在BIOS里面取硬件時間,以保證時間的不間斷。但在Linux下,默認情況下,系統時間和硬件時間並不會自動同步。在Linux運行過程中,系統時間和硬件時間以異步的方式運行,互不干擾。硬件時間的運行,是靠BIOS電池來維持,而系統時間,是用CPU Tick來維持的。在系統開機的時候,會自動從BIOS中取得硬件時間,設置為系統時間,以后就會自己維護系統的時間,所以當主機運行很久都沒有重啟時就有可能發生系統時間與硬件時間不一樣的情況
三、date命令查看修改系統時間
1、查看系統時間
-----------------------------------
laopi@debian:~$ date
2020年 05月 04日 星期一 21:37:52 CST ##CST(時區縮寫)可視為美國、澳大利亞、古巴或中國的標准時間
-----------------------------------
2、配置系統時間,只有root用戶可以操作
-----------------------------------
date -s 10:01:10 ##只設置時間,不會對日期做更改
date -s 20180818 ##設置成2018年8月18號,這樣同時會把時間設置00:00:00
date -s "20180818 10:01:10" ##同時設置時間與日期,日期和時間需要用雙引號擴起來
date -s "2018-08-18 10:01:10" ##同時設置時間與日期另一種書寫形式
-----------------------------------
四、hwclock命令查看修改硬件時間,只有root用戶可以使用這個命令
1、查看硬件時間
-----------------------------------
root@debian:~# hwclock
2020-05-04 22:19:17.172749+0800 ##+0800表示東8區,這個時間也就是硬件時間加8后的時間
-----------------------------------
2、將系統時間同步到硬件時間
-----------------------------------
root@debian:~# hwclock -w
-----------------------------------
3、將硬件時間同步到系統時間
-----------------------------------
root@debian:~# hwclock -s
-----------------------------------
4、更改硬件時間
------------------------------------
hwclock --set --date 20180818 ##只設置時間,不會對日期做更改
hwclock --set --date 10:01:10 ##設置成2018年8月18號,這樣同時會把時間設置00:00:00
hwclock --set --date "20140225 20:23:00" ##同時設置時間與日期,日期和時間需要用雙引號擴起來
hwclock --set --date "2018-08-18 10:01:10" ##同時設置時間與日期另一種書寫形式
------------------------------------
