Linux的時間與時區

2021-06-05 04:39:52 字數 993 閱讀 8123

首先要說明的是我的系統是fedora,其他系統可能不完全相同。

1,時間儲存在硬體實時鐘(rtc)中,rtc由主機板電池供電,即使關斷電源也不會造成時間丟失。

2,系統啟動時從rtc獲取時間,這個步驟在rc.sysinit中做:

a,首先從/etc/sysconfig/clock中獲取rtc相關引數utc/arc/srm。utc為true表示rtc儲存的時間是utc時間,false表示儲存的是本地時間。arc與srm的含義參考hwclock的manpage,一般false即可;

b,根據上面獲取的內容構造hwclock命令的引數,將時間由rtc讀取到系統時鐘。

*需要說明的一點是hwclock的輸出是本地時間,localtime/utc引數只是用來告訴hwclock命令coms時區是哪個時區。比如linux系統的系統時區設定為cst(中國標準時間),coms時間採用牆上時間,即coms時區也是cst,這時如果使用--utc引數,會讓hwclock誤以為coms時區為utc,所以輸出的時間會自動+8。

3,tzset():tzset在程式中用來初始化tzname等全域性變數,它首先試圖從環境變數「tz」中獲取時區,如果tz環境變數存在,即getenv("tz")返回值不為null,且包含內容有效,則使用tz值;如果該變數存在但內容無效,比如包含錯誤的時區名字,則使用utc;如果該變數不存在,即getenv("tz")返回null,則查詢系統時區設定檔案,一般是/etc/localtime。localtime所指檔案的內容格式可參考tzfile(5)。

4,time():返回自00:00:00 utc, january 1, 1970到現在所經過的秒數,注意,是utc。

5,ctime()/localtime()/mktime():這類和時區相關的函式內部會呼叫tzset,但只是第一次呼叫tzset會做實際初始化,後面的呼叫都是直接返回。

6,系統關閉時,如執行shutdown/reboot/poweroff/halt等操作後,系統時間會儲存到rtc中,這是在halt指令碼中完成的,參看/etc/init.d/halt內容。

關於Linux的時間與時區

首先要說明的是我的系統是fedora,其他系統可能不完全相同。1,時間儲存在硬體實時鐘 rtc 中,rtc由主機板電池供電,即使關斷電源也不會造成時間丟失。2,系統啟動時從rtc獲取時間,這個步驟在rc.sysinit中做 a,首先從 etc sysconfig clock中獲取rtc相關引數utc...

Linux修改系統時間與時區

gmt greewich mean time 格林威治標準時間 gmt是老的時間計量標準,根據地球的自轉和公轉來計算時間,也就是太陽每天經過位於英國倫敦郊區的皇家格林尼治天文台的標準時間就是中午12點,因為本初子午線被定義在通過 的經線,格林尼治標準時間的正午是指當太陽橫穿格林尼治子午線時 也就是在...

Linux 時區和時間

1.檢視當前時區 date r2.修改設定linux伺服器時區 方法 a tzselect方法 b 僅限於redhat linux 和 centos timeconfig方法 c 適用於debian dpkg reconfigure tzdata3.複製相應的時區檔案,替換系統時區檔案 或者建立鏈結...