機器裡有兩個時鐘。硬件時鐘從根本上講是CMOS時鐘;而系統時鐘是由內核維護的,它是從1969年末(即傳說中的標志Unix時代開端的那個拂曉)開始算起的累積秒數。
在DOS或Mac系統中,起作用的是硬件時鐘。遺憾的是,你可能已經發現了,絕大多數電腦時鐘都是很不准確的。它們從根本上講是由小型電池供電的警報器時鐘,這種锂電池一般可持續供電三年左右,那時候你系統各大塊差不多都已經過時了。
而在Linux系統中,起作用的是系統時鐘。在啟動時,它靠讀取硬件時鐘獲得計時起點,而不是靠記憶計時。
你可以通過BIOS修改系統硬件時鐘,或者如果你不想重起機器,那就用hwclock命令。
比較酷的一點是,當你使用hwclock命令調整硬件時間很多次以後,hwclock就會獲取你的時鐘推移速率,然後就會把這個信息存在/etc/adjtime裡邊。以後,你就可以用它來隨時更新你的硬件時間,用一條下面的命令:
hwclock --adjust
硬件時鐘通常被設置成全球標准時間(UTC),而將時區信息保存在/usr/share/lib/timezone (或者在某些系統中可能是/usr/local/timezone)目錄下某個適當的文件中,然後用一個符號鏈接文件/etc/localtime指向它。
查看硬件時鐘用命令:
hwclock --show
重置硬件時鐘用:
hwclock --set --date="1/23/01 22:16:59"
如果需要修改你的時區信息,可以使用tzset命令,如果你系統中沒有這條命令,那可以用類似下面的操作:
ln -s /etc/localtime /usr/share/zoneinfo/US/Pacific
要掌握linux的時間操作還有很多東西需要了解,包括用來創建實時時鐘文件(/dev/rtc)的內核選項、在內核或TZ時區表中設置時區信息的方法、網絡時間服務器功能和夏令時等等。
摘自:http://www.zdnet.com.cn