Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> สมาร์ทโฟน >> Linux

คู่มือคำสั่ง date ใน Linux (ฉบับสมบูรณ์)

คู่มือครบครันสำหรับคำสั่ง date - มากกว่าการดูเวลา เพื่อ Formatting, Calculation, และ Timezone

การใช้งานพื้นฐาน

date
# Sun Dec 14 11:33:55 IST 2008

Custom Format (Format Specifiers)

ตัวอย่าง Format ที่ใช้บ่อย

date +"%Y-%m-%d"           # 2024-12-14 (ISO Date)
date +"%Y%m%d"             # 20241214 (Compact)
date +"%Y-%m-%d %H:%M:%S"  # 2024-12-14 11:33:55 (DateTime)
date +"%F %T"              # Shortcut สำหรับข้างบน
date +"%s"                 # Unix Timestamp (สำคัญสำหรับ Programming)
date +"%A, %B %d, %Y"      # Thursday, December 14, 2024

Date Calculation (--date / -d)

date -d "yesterday"
date -d "tomorrow"
date -d "last monday"
date -d "next friday"
date -d "5 days ago"
date -d "2 weeks"
date -d "3 months"
date -d "1 year"
date -d "2024-12-25"
date -d "2024-12-25 10:30:00"
date -d "@1703472000"      # จาก Unix Timestamp

ตั้งค่าเวลา (ต้องเป็น Root)

date -s "2024-12-25 10:30:00"
date --set="2024-12-25 10:30:00"

Timezone

TZ=Asia/Bangkok date       # แสดงเวลา Bangkok ชั่วคราว
date -d 'TZ="America/New_York" now'  # เวลา New York ตอนนี้

การใช้ใน Shell Script

#!/bin/bash
NOW=$(date +"%Y-%m-%d %H:%M:%S")
BACKUP_DIR="/backup/$(date +%Y/%m/%d)"
mkdir -p "$BACKUP_DIR"
tar -czf "$BACKUP_DIR/backup-$(date +%H%M%S).tar.gz" /data

FAQ

  • Unix Timestamp คืออะไร? วินาทีที่ผ่านมาตั้งแต่ 1970-01-01 00:00:00 UTC (date +%s)
  • ISO 8601? date -Iseconds → 2024-12-14T11:33:55+07:00
  • Nanosecond? date +%N (ต้องการ GNU date)

date เป็น Swiss Army Knife ของเวลาใน Linux เรียนรู้ Format Specifiers ไว้ จะเขียน Script/Get Log ทำงานได้เร็วขึ้นมาก

Codeคำอธิบายตัวอย่าง
%%Literal %%
%aWeekday Abbr (Sun)Sun
%AWeekday Full (Sunday)Sunday
%bMonth Abbr (Jan)Dec
%BMonth Full (January)December
%cLocale Date TimeSun Dec 14 11:33:55 2008
%CCentury (Year/100)20
%dDay of Month (01-31)14
%DDate %m/%d/%y12/14/08
%FDate %Y-%m-%d (ISO)2008-12-14
%HHour 00-2311
%IHour 01-1211
%jDay of Year (001-366)349
%mMonth 01-1212
%MMinute 00-5933
%nNewline-
%pAM/PMAM
%rTime 12-hour11:33:55 AM
%RTime 24-hour %H:%M11:33
%sEpoch Seconds (Unix Time)1229243635
%SSecond 00-5955
%tTab-
%TTime %H:%M:%S11:33:55
%uWeekday 1-7 (Mon=1)7
%UWeek of Year (Sun first)50
%VISO Week of Year50
%wWeekday 0-6 (Sun=0)0
%WWeek of Year (Mon first)50
%xLocale Date12/14/08
%XLocale Time11:33:55
%yYear 2 digits08
%YYear 4 digits2008
%zTimezone Offset (+0700)+0700
%ZTimezone Name (IST)IST