linux時間差
『壹』 在linux中用localtime()顯示的時間與實際時間不相符,不是與北京時間差8個小時,而是差15個小時
試試修改下時間設置
hwclock --set --date="07/23/2003 11:16:00"
hwclock --hctosys
上面設置的時間為 2003年07月23號 11:16:00自行更改
『貳』 用Linux shell 計算兩個時間差
start=`date +%s -d "2011-11-28 15:55:37"`
end=`date +%s -d "2011-11-28 15:55:52"`
echo $(($end-$start))
這個前提是你能拿到開始和結束時間字串的基礎上的。
如果你的日誌文件輸出格式是上述的話,還有個方法:
cat 日誌文件 | awk '/^000/{
start=$2 " " $3
end=$4 " " $5
stm=mktime(gensub(/[:-]/, " ", "g", start))
etm=mktime(gensub(/[:-]/, " ", "g", end))
print $1 " - " etm-stm
}'
『叄』 linux系統時間不一致怎麼修改
方法/步驟 1 修改系統時間。 linux系統時鍾有兩個,一個是硬體時鍾,即BIOS時間,就是我們進行CMOS設置時看到的時間,另一個是系統時鍾,是linux系統Kernel時間。當Linux啟動時,系統Kernel會去讀取硬體時鍾的設置,然後系統時鍾就會獨立於硬體運作。有時我們會發現系統時鍾和硬體時鍾不一致,因此需要執行時間同步,下面就分享一下時間設置及時鍾同步的命令使用方法。 date命令將日期設置為2014年6月18日 ---- date -s 06/18/14 將時間設置為14點20分50秒 ---- date -s 14:20:50 將時間設置為2014年6月18日14點16分30秒(MMDDhhmmYYYY.ss) ----date 0618141614.30 2 hwclock/clock 命令查看、設置硬體時間 查看系統硬體時鍾 hwclock --show 或者 clock --show 設置硬體時間 hwclock --set --date="06/18/14 14:55" (月/日/年時:分:秒)或者# clock --set --date="06/18/14 14:55" (月/日/年時:分:秒) 3 同步系統及硬體時鍾。 下圖中可以看到硬體和系統時鍾相差半小時。可以使用hwclock或者clock進行同步, 硬體時鍾與系統時鍾同步: # hwclock --hctosys 或者 # clock --hctosys hc代表硬體時間,sys代表系統時間,即用硬體時鍾同步系統時鍾 系統時鍾和硬體時鍾同步: # hwclock --systohc或者# clock --systohc 即用系統時鍾同步硬體時鍾 END 方法/步驟2 時區設置: 開始設置時區時,參考網上的資料,使用tzselect 命令來進行,結果發現tzselect命令只是告訴了設置時區的方法,而並不是真的去修改/etc/sysconfig/clock這個文件。換句話說就是tzselect命令僅僅告訴我們通過設置TZ這個環境變數來選擇的時區,然後將變數添加到.profile文件中。下面就簡單介紹一下如何使用tzselect命令設置時區,以及如何通過修改/etc/sysconfig/clock配置文件來設置時區。 tzselect: 執行tzselect命令-->選擇Asia-->選擇China-->選擇east China - Beijing, Guangdong, Shanghai, etc-->然後輸入1。過程如下圖: 執行完tzselect命令選擇時區後,時區並沒有更改,只是在命令最後提示你可以執行TZ='Asia/Shanghai'; export TZ 並將這行命令添加到.profile中,然後退出並重新登錄。參考下圖中date命令看到的結果,最終時區顯示為CST,即中國標准時間。 修改配置文件來修改時區1、修改/etc/sysconfig/clock ZONE=Asia/Shanghai 2、rm /etc/localtime3、鏈接到上海時區文件 ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 執行完上述過程後,重啟機器,即可看到時區已經更改。
『肆』 linux怎麼修改時間
一、手動修改
1. date命令:查看當前時間
修改成功!
『伍』 linux使用c/c++怎麼計算時間差
可以用time()系統調用來獲取系統時間,然後減去之前記錄的時間就得到了時間差
『陸』 linux伺服器的時間不準
兩個可能,時區錯誤,不過我記得沒有 40 分鍾的市區差。
還一個可能就是時鍾本來設置就不準,你去用 ntp 對一下時間就行了。
『柒』 linux中的時間是哪個時區的
1、more /etc/sysconfig/clock
ZONE="Asia/Shanghai"
2、GMT + 8 = UTC + 8 = CST ,我們的linux系統時間和計算機硬體時間應該是cst時間,上海時區。
3、安裝CentOS/RHEL時候,應當取消」系統時鍾使用UTC時間」這個選項,如果忘了取消,系統時鍾會差8小時
#vi /etc/sysconfig/clock
把UTC=true 修改為 UTC=false,保存後重啟即可。
4、#ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
或者
#cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
5、系統時鍾
date -R
6、zmp – This utility prints the current time and date in the specified time zone. Example:
# zmp Japan
Japan Tue Feb 28 17:52:18 2017 JST
# zmp Iceland
Iceland Tue Feb 28 08:52:45 2017 GMT
zmp China
China Tue Feb 28 08:53:02 2017 China
7、CST/GMT/UTC/DST縮寫
CST China Standard Time UT+8:00
GMT 格林威治標准時間(Greenwich Mean Time,簡稱G.M.T.)
UTC 世界協調時間UTC比GMT來得更加精準
DST 夏日節約時間:所謂「夏日節約時間」Daylight Saving Time(簡稱D.S.T.),
RTC 硬體時鍾(Real Time Clock,簡稱RTC),相對應的系統時鍾(System Clock)。
『捌』 為什麼linux上的時間不準
一、問題分析
1.轉換誤差
2.時鍾不穩定
3.時鍾頻率不對
接下來來看一下Linux系統內時間管理的內容
clock source用於為linux內核提供一個時間基線,實際上就是一個時間相關的結構體,如果你用linux的date命令獲取當前時間,內核會讀取當前的clock source轉換並返回合適的時間單位給用戶空間。在硬體層,它通常實現為一個由固定時鍾頻率驅動的計數器(上面的
TimeBase),計數器只能單調地增加,直到溢出為止。系統啟動時,內核通過硬體RTC獲得當前時間,並設置到計數器內,在這以後,內核通過選定的時鍾源更新實時時間信息(牆上
時間),而不再讀取RTC的時間。
clock source可以有多個,系統啟動時會檢查所有clock source然後將精度最好的時鍾源設為當前時鍾源。每個時鍾源的精度由驅動它的時鍾頻率決定,可以用如下命令查看clock source。更詳細的可參考書籍《Linux就該這么學》。
『玖』 linux如何比對兩個時間差
#include <stdio.h>
#include <time.h>
int
main ()
{
struct tm tm, tm2;
char buf[255];
time_t t1, t2;
strptime ("Thu Feb 5 13:12:18 EST 2009", "%a %b %d %H:%M:%S EST %Y", &tm);
strptime ("Fri Feb 6 13:11:18 EST 2009", "%a %b %d %H:%M:%S EST %Y", &tm2);
t1 = mktime(&tm);
t2 = mktime(&tm2);
printf("TIME: %ld, %ld, %ld\n", t2, t1, t2-t1);
return 0;
}