Shell 中常用 Date 日期的计算

Kefira ·
更新时间:2024-09-20
· 570 次阅读

目录

正文

一、Date 基础格式化

二、Date 日期计算

正文

在使用 Crontab 定时任务和 Shell 脚本切割 Nginx 日志文件时,要用到时间戳、当月、上月、下月、上月初、上月末、下月初、下月末等等,其中有些日期不能直接获取,需要经过一定的计算才能得到。

Shell Date

一、Date 基础格式化 格式输出含义
date2022年 11月 15日 星期二 19:10:21 CST当前日期和时间
date +%Y2022
date +%y22
date +%m11
date +%d15
date +%D11/15/22当前日期
date +%Y%m%d20221115当前日期
date +%F2022-11-15当前日期
date +%H19
date +%M20
date +%S30
date +%s1668511253时间戳
date +%T19:21:26时分秒
date +%H:%M:%S19:21:26时分秒
date +%w2今天是周二
date +%W46今年的第46周
cal(当月日历)当月日历
二、Date 日期计算

当前日期: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

时间戳转日期

date -d @1621563928 # 2021年 05月 21日 星期五 10:25:28 CST

日期转时间戳

date +%s -d "2022-10-21 10:38:48" # 1666319928

当月末日期和当月天数:先获取下个月第一天,减去一天

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

以上就是Shell 中常用 Date 日期的计算的详细内容,更多关于Shell Date日期计算的资料请关注软件开发网其它相关文章!



shell date

需要 登录 后方可回复, 如果你还没有账号请 注册新账号