linux操作系統的時間


參考:http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=3637782
linux平台中有硬件時鍾與系統時鍾兩種時鍾,一個是由主板電池驅動的“Real Time Clock”也叫做RTC或者叫CMOS時鍾,硬件時鍾。當操作系統關機的時候,用這個來記錄時間,但是對於運行的系統是不用這個時間的。另一個時間是 “System clock”也叫內核時鍾或者軟件時鍾,是由軟件根據時間中斷來進行計數的,內核時鍾在系統關機的情況下是不存在的,所以,當操作系統啟動的時候,內核時鍾是要讀取RTC時間來進行時間同步。

1、系統時間的讀取與設定

date命令:以指定的形式顯示時間或者設定系統時間。

用法:date [選項]... [+格式]
 或:date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
以給定的格式顯示當前時間,或是設置系統日期。

  -d,--date=字符串		顯示指定字符串所描述的時間,而非當前時間
  -f,--file=日期文件		類似--date,從日期文件中按行讀入時間描述
  -r, --reference=文件		顯示文件指定文件的最后修改時間
  -R, --rfc-2822		以RFC 2822格式輸出日期和時間
				例如:2006年8月7日,星期一 12:34:56 -0600
      --rfc-3339=TIMESPEC	以RFC 3339 格式輸出日期和時間。
				TIMESPEC=`date',`seconds',或 `ns' 
				表示日期和時間的顯示精度。
				日期和時間單元由單個的空格分開:
				2006-08-07 12:34:56-06:00
  -s, --set=字符串         	設置指定字符串來分開時間
  -u, --utc, --universal	輸出或者設置協調的通用時間
      --help		顯示此幫助信息並退出
      --version		顯示版本信息並退出
示例1:以指定的格式顯示給定的時間

date -d 20170301 +“%A %B”
運行結果:星期三 三月

示例2:以指定的格式顯示文件中的時間(文件內容為20170301\n 20190611)

date -f /home/sifang/time.txt +"%A %B"
運行結果:
星期三 三月
星期二 六月

示例3:以指定的格式顯示當前時間

date +"%A%B"
運行結果:星期二六月

示例4:顯示文件的最后修改時間

date -r filename

示例5:設定系統時間

date -s 20190611設置系統時間為2019年6月11時0點0分0秒
date -s 17:55:55 設置系統時間為17點55分55秒
date -s "20190611 17:55:55"設置系統日期和時間
date -s "2019-06-11 17:00:00"設置系統日期和時間

示例6:日期的加減

date +%Y%m%d --date="-1 day" 顯示前一天的日期
date +%Y%m%d --date="+1 day" 顯示后一年的日期
date +%Y%m%d --date="-2 month" 顯示前兩個月的日期

2、硬件時間的讀取與設定

hwclock 設置和顯示硬件時間(一般只有root用戶才有權限)

-r, --show         讀取並打印硬件時鍾(read hardware clock and print result )
-s, --hctosys      將硬件時鍾同步到系統時鍾(set the system time from the hardware clock )
-w, --systohc     將系統時鍾同步到硬件時鍾(set the hardware clock to the current system time )

--adjust  hwclock每次更改硬件時鍾時,都會記錄在/etc/adjtime文件中。使用--adjust參數,可使hwclock根據先前的記錄來估算硬件時鍾的偏差,並用來校正目前的硬件時鍾。 
--debug  顯示hwclock執行時詳細的信息。 
--directisa  hwclock預設從/dev/rtc設備來存取硬件時鍾。若無法存取時,可用此參數直接以I/O指令來存取硬件時鍾。 
--hctosys  將系統時鍾調整為與目前的硬件時鍾一致。 
--set --date=<日期與時間>  設定硬件時鍾。 
--show  顯示硬件時鍾的時間與日期。 
--systohc  將硬件時鍾調整為與目前的系統時鍾一致。 
--test  僅測試程序,而不會實際更改硬件時鍾。 
--utc  若要使用格林威治時間,請加入此參數,hwclock會執行轉換的工作。 
--version  顯示版本信息。
示例1:顯示硬件時間

hwclock -r或者hwclock

示例2:以給定的時間設定硬件時間

hwclock --set --date "2019-04-05 11:11:11"

示例3:把硬件時間同步給系統時間

hwclock -s

示例4:把系統時間同步給硬件時間

hwclock -w

3、時區的讀取與設置

讀取時區:date -R date +"%Z %z"
timedatectl |grep "Timezone"

設置時區的方法:
方法一:圖形界面

系統--日期與時間設置--時區或者執行system-config-date打開(實際設置的是/etc/sysconfig/clock文件)

方法二:文件拷貝

執行命令ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime(立即生效)
/usr/share/zoneinfo目錄存放時區相關文件。

方法三:tzselect

執行tzselect,依據提示設置TZ環境變量。
TZ='Asia/Shanghai'; export TZ


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM