在使用 Crontab 定時任務(wù)和 Shell 腳本切割 Nginx 日志文件時樱溉,要用到時間戳、當(dāng)月纬凤、上月福贞、下月、上月初停士、上月末挖帘、下月初、下月末等等恋技,其中有些日期不能直接獲取拇舀,需要經(jīng)過一定的計(jì)算才能得到。
Shell Date
一蜻底、Date 基礎(chǔ)格式化
格式 | 輸出 | 含義 |
---|---|---|
date | 2022年 11月 15日 星期二 19:10:21 CST | 當(dāng)前日期和時間 |
date +%Y | 2022 | 年 |
date +%y | 22 | 年 |
date +%m | 11 | 月 |
date +%d | 15 | 日 |
date +%D | 11/15/22 | 當(dāng)前日期 |
date +%Y%m%d | 20221115 | 當(dāng)前日期 |
date +%F | 2022-11-15 | 當(dāng)前日期 |
date +%H | 19 | 時 |
date +%M | 20 | 分 |
date +%S | 30 | 秒 |
date +%s | 1668511253 | 時間戳 |
date +%T | 19:21:26 | 時分秒 |
date +%H:%M:%S | 19:21:26 | 時分秒 |
date +%w | 2 | 今天是周二 |
date +%W | 46 | 今年的第46周 |
cal | (當(dāng)月日歷) | 當(dāng)月日歷 |
二骄崩、Date 日期計(jì)算
當(dāng)前日期:2022-11-15
- 前一天
date -d "-1 day"
# 2022年 11月 14日 星期一 19:34:01 CST
date -d "-1 day" +%F
# 2022-11-14
date -d "last day" +%F
# 2022-11-14
- 前三天
date -d "-3 day" +%F
# 2022-11-12
- 后一天
date -d "1 day" +%F
# 2022-11-16
date -d "next day" +%F
# 2022-11-16
- 上一月
date -d "-1 month" +%F
# 2022-10-15
date -d "last month" +%Y%m
# 202210
- 下一月
date -d "1 month" +%F
# 2022-12-15
date -d "next month" +%Y-%m
# 2022-12
- 上一年
date -d "-1 years" +%F
# 2021-11-15
date -d "last year" +%Y%m
# 202111
- 時間戳轉(zhuǎn)日期
date -d @1621563928
# 2021年 05月 21日 星期五 10:25:28 CST
- 日期轉(zhuǎn)時間戳
date +%s -d "2022-10-21 10:38:48"
# 1666319928
- 當(dāng)月末日期和當(dāng)月天數(shù):先獲取下個月第一天,減去一天
nextMonthStart=`date -d "${date} +1 month" "+%Y%m01"`
currMonthEnd=`date -d "${nextMonthStart} -1 day" "+%F"`
currMonthDays=`date -d "${nextMonthStart} -1 day" "+%d"`
echo $currMonthEnd
# 2022-11-30
echo currMonthDays
# 30
歡迎訪問:天問博客