1、UTC就是0時區的時間,是國際标準,而中國處于UTC+8時區;CST是中國标準時間。
2、 linux系統時鐘有兩個,一個是硬體時鐘,即BIOS時間,就是我們進行CMOS設定時看到的時間,另一個是系統時鐘,是linux系統Kernel時間。當Linux啟動時,系統Kernel會去讀取硬體時鐘的設定,然後系統時鐘就會獨立于硬體運作。有時我們會發現系統時鐘和硬體時鐘不一緻,是以需要執行時間同步。
date
檢視系統時間;
date -s 06/18/14;
date指令将日期設定為2014年6月18日。
date -s 14:20:50;
将時間設定為14點20分50秒。
date 0618141614.30;
将時間設定為2014年6月18日14點16分30秒(MMDDhhmmYYYY.ss)。
3、硬體時鐘
hwclock --show或者clock --show
檢視系統硬體時鐘。
hwclock --set --date="06/18/14 14:55"
clock --set --date="06/18/14 14:55"
設定硬體時間:(月/日/年時:分:秒)。
4、時鐘同步
硬體時鐘與系統時鐘同步:
hwclock --hctosys; 或者 clock --hctosys;
hc代表硬體時間,sys代表系統時間,即用硬體時鐘同步系統時鐘;
系統時鐘和硬體時鐘同步:
hwclock --systohc;或者 clock --systohc;
5、修改時區
(1)通過修改配置:
step1:修改
/etc/sysconfig/clock
中的
ZONE=Asia/Shanghai;UTC=false; ARC=false
step2:
rm /etc/localtime;
step3:連結到上海時區檔案:
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime;
step4:執行完上述過程後,重新開機機器,即可看到時區已經更改。
6、永久修改系統時間
(1)date 檢視系統時間
(2)hwclock --show 檢視硬體的時間
(3)hwclock --set --date ‘2018-11-26 20:20:00’ 設定硬體時間為18年11月26日20點20分00秒;
(4)hwclock --hctosys 設定系統時間和硬體時間同步;
(5)clock -w 儲存時鐘;
7、時間域
- %H 小時(00…23)
- %I 小時(01…12)
- %k 小時(0…23)
- %l 小時(1…12)
- %M 分(00…59)
- %p 顯示出AM或PM
- %r 時間(hh:mm:ss AM或PM),12小時
- %s 從1970年1月1日00:00:00到目前經曆的秒數
- %S 秒(00…59)
- %T 時間(24小時制)(hh:mm:ss)
- %X 顯示時間的格式(%H:%M:%S)
- %Z 時區 日期域
- %a 星期幾的簡稱( Sun…Sat)
- %A 星期幾的全稱( Sunday…Saturday)
- %b 月的簡稱(Jan…Dec)
- %B 月的全稱(January…December)
- %c 日期和時間( Mon Nov 8 14:12:46 CST 1999)
- %d 一個月的第幾天(01…31)
- %D 日期(mm/dd/yy)
- %h 和%b選項相同
- %j 一年的第幾天(001…366)
- %m 月(01…12)
- %w 一個星期的第幾天(0代表星期天)
- %W 一年的第幾個星期(00…53,星期一為第一天)
- %x 顯示日期的格式(mm/dd/yy)
- %y 年的最後兩個數字( 1999則是99)
- %Y 年(例如:1970,1996等)
8、linux C++ 擷取目前時間,以标準時間“年-月-日 時:分:秒”的形式輸出,且秒後邊跟小數精确到毫秒
struct timeval tv;
char buf[64];
gettimeofday(&tv, NULL);
strftime(buf, sizeof(buf)-1, "%Y-%m-%d %H:%M:%S", localtime(&tv.tv_sec));
fprintf(stderr, "%s.%03d: ", buf, (int)(tv.tv_usec / 1000));