在使用 Crontab 定时任务和 Shell 脚本切割 Nginx 日志文件时,要用到时间戳、当月、上月、下月、上月初、上月末、下月初、下月末等等,其中有些日期不能直接获取,需要经过一定的计算才能得到。
一、Date 基础格式化
格式 | 输出 | 含义 |
---|---|---|
date | 2022年 11月 15日 星期二 19:10:21 CST | 当前日期和时间 |
date +%Y | 2022 | 年 |
date +%y | 22 | 年 |
date +%m | 11 | 月 |
date +%d | 15 | 日 |
date +%D | 11/15/22 | 当前日期 |
date +%Y%m%d | 20221115 | 当前日期 |
date +%F | 2022-11-15 | 当前日期 |
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 | (当月日历) | 当月日历 |
二、Date 日期计算
当前日期:2022-11-15
- 前一天
1 | date -d "-1 day" |
- 前三天
1 | date -d "-3 day" +%F |
- 后一天
1 | date -d "1 day" +%F |
- 上一月
1 | date -d "-1 month" +%F |
- 下一月
1 | date -d "1 month" +%F |
- 上一年
1 | date -d "-1 years" +%F |
- 时间戳转日期
1 | date -d @1621563928 |
- 日期转时间戳
1 | date +%s -d "2022-10-21 10:38:48" |
- 当月末日期和当月天数:先获取下个月第一天,减去一天
1 | nextMonthStart=`date -d "${date} +1 month" "+%Y%m01"` |
欢迎访问:天问博客
本文作者: Tiven
发布时间: 2022-11-15
最后更新: 2023-03-02
本文标题: Shell 中常用 Date 日期的计算
本文链接: https://www.tiven.cn/p/4269c9aa/
版权声明: 本作品采用 CC BY-NC-SA 4.0 许可协议进行许可。转载请注明出处!
发布时间: 2022-11-15
最后更新: 2023-03-02
本文标题: Shell 中常用 Date 日期的计算
本文链接: https://www.tiven.cn/p/4269c9aa/
版权声明: 本作品采用 CC BY-NC-SA 4.0 许可协议进行许可。转载请注明出处!