shell中日期相关操作,
获取当前时间,并指定格式:

date +%Y%m%d
返回:20200603

获取当前时间的前n天,比如昨天:

date +%Y%m%d -d "-1 days"
返回:20200602

常见格式化日期:

date "+%Y-%m-%d %H:%M:%S"
返回:2020-06-03 15:15:2

计算两个时间的差值,
date +%s可以将日期转换成秒数:

date +%s 
返回:1591174030

将字符串转换为日期

date -d "2020-06-03"
或者
date -d "20200603"
返回:
2020年 06月 03日 星期三 00:00:00 CST

或者:

date -d '2020-06-03 19:03:05'
date -d "20200603 19:03:05"
返回
2020年 06月 03日 星期三 19:03:05 CST

可以将时间转换为秒数之后计算两个时间的差值。
如:

start_time=`date +%s -d "2020-06-03 15:52:37"`
end_time=`date +%s -d "2020-06-03  15:53:52"`
echo $(($end_time-$start_time))

遍历某个时间段时间

start_time=$1
end_time=$2
if [[ ${start_time} > ${end_time} ]];then
    echo "error: end time smaller than start time,exit "
    exit 1
fi
while [[ ${start_time} -le ${end_time} ]]; do
    echo ${start_time}
    start_time=`date -d "${start_time} 1 day" +%Y%m%d`
done
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐