Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux 系統時間管理核心指令:date 參數詳解、格式化輸出、時間設定與日期運算

編輯:Linux 教學

date 是檢視與設定系統時間的標準工具,支援豐富的格式化字串、相對日期運算、時區處理。本文詳解 30+ 格式化代碼、權限區分、三大實戰場景與腳本整合範例。

一、 權限區分

  • 一般使用者:僅能檢視時間(date、date +FORMAT)
  • Root:可設定系統時間(date -s STRING)

二、 核心選項

選項功能
-s, --set=STRING設定系統時間
-d, --date=STRING顯示指定字串描述的時間(非設定)
-u, --utc顯示/設定 UTC 時間
-R, --rfc-2822RFC 2822 格式(郵件標準)
-I, --iso-8601ISO 8601 格式
--reference=FILE顯示檔案最後修改時間

三、 格式化代碼完整表(date +FORMAT)

代碼含義範例
%H時 (00-23)14
%I時 (01-12)02
%k時 (0-23, 無前導零)14
%l時 (1-12, 無前導零)2
%M分 (00-59)30
%S秒 (00-59)59
%pAM/PMPM
%r12小時制時間 (hh:mm:ss AM/PM)02:30:59 PM
%T24小時制時間 (hh:mm:ss)14:30:59
%X當地時間格式 (%H:%M:%S)14:30:59
%x當地日期格式 (mm/dd/yy)07/15/08
%D日期 (mm/dd/yy)07/15/08
%Y年 (四位數)2008
%y年 (兩位數)08
%m月 (01-12)07
%b / %h月縮寫Jul
%B月全名July
%d日 (01-31)15
%e日 (1-31, 空格補齊)15
%a星期縮寫Tue
%A星期全名Tuesday
%j年間第幾天 (001-366)197
%U年間第幾週 (週日為首日)28
%VISO 週數 (週一為首日)28
%Z時區名稱CST
%z時區數值 (+/-HHMM)+0800
%c完整日期時間Tue Jul 15 14:30:59 2008
%n換行-
%tTab-
%%字面 %%

四、 三大實戰場景

1. 自訂格式輸出

date '+This date now is:%x, time is now:%X, thanks!'
# This date now is:07/15/2008, time is now:14:30:59, thanks!

2. 設定系統時間

# 分步設定
date -s 20080715        # 設定日期
date -s 17:25           # 設定時間
# 一次設定
date -s "20080715 17:25"
# 或 ISO 格式
date -s "2008-07-15 17:25:00"

3. 相對日期運算(-d 強大功能)

date -d "2 days ago" +%Y-%m-%d        # 兩天前
date -d "next Monday" +%F             # 下週一
date -d "1 month" +%Y-%m              # 一個月後
date -d "yesterday 10:00" +%T         # 昨天 10:00
date -d "@1620000000"                 # Unix 時間戳轉換

五、 腳本整合範例

#!/bin/bash
# backup.sh - 以日期命名備份檔
DATE=$(date +%Y%m%d_%H%M%S)
tar -czf "/backup/www_${DATE}.tar.gz" /var/www/html
# 保留 30 天
find /backup -name "www_*.tar.gz" -mtime +30 -delete

六、 硬體時鐘同步(hwclock)

hwclock --systohc   # 系統時間寫入硬體時鐘 (關機前)
hwclock --hctosys   # 硬體時鐘讀入系統時間 (開機時)

現代系統由 systemd-timesyncd / chronyd / ntpd 自動同步 NTP,無需手工干預。

七、 結語

date 的格式化代碼是「時間的語言」。熟記 %F (%Y-%m-%d)、%T (%H:%M:%S)、%s (Unix timestamp)、-d 相對運算四大核心用法,覆蓋 95% 腳本與運維場景。記住:**僅 Root 能改時間,NTP 自動同步才是生產環境正解**。

Copyright © Windows教程網 All Rights Reserved