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