shell 获取时间

获取时间操作

/* date 获取参数 */
CUR_DATE=`date -d "-1 day"  +%Y-%m-%d`
CUR_PARTITION=`date -d "-1 day"  +%Y%m%d`
BEGIN_PARTITION=`date -d "-1 day"  +%Y%m%d`
END_PARTITION=`date -d "-1 day"  +%Y%m%d`
BEGIN_DATE=`date -d "-1 day"  +%Y-%m-%d`
END_DATE=`date -d "-1 day"  +%Y-%m-%d`

/* 根据指定的时间去获取日期时间, format_day格式为 20171204 */
format_day=`echo $1|grep -o '[0-9]\{8\}'`
format_hour=`echo $1|grep -o '[0-9]\{2\}$'`
CUR_DATE=`date -d "$format_day" +%Y-%m-%d`
CUR_PARTITION=`date -d "$format_day" +%Y%m%d`
LAST_MONTH=`date -d "${format_day} -1 month" +%Y%m`
BEGIN_DATE=`date -d "${format_day}"  +%Y-%m-%d`
END_DATE=`date -d "${format_day}"  +%Y-%m-%d`
BEGIN_PARTITION=`date -d "${format_day}"  +%Y%m%d`
END_PARTITION=`date -d "${format_day}"  +%Y%m%d`

获取指定开始结束时间内的所有日期

会循环例举所有的自然月天数, 日期按照标准天数,比如2月只到28/29号

#!/bin/bash
#以天做循环
#20170101 20170103

stime=$1
etime=$2
while :
do
    stime=$(date -d "$stime 1day"  +%Y%m%d)
    echo $stime
    if [[ $stime -gt $etime ]]; then
        break;
    fi
done

举例:

sh getDate.sh 20170125 20170416
运行结果:
20170126
...
20170228
20170301
20170302
...
20170416
20170417
改善脚本,使得打印出来的时间在输入时间范围之内(包括输入的时间)
#!/bin/bash
#以天做循环
#20170101 20170103

stime=$1
etime=$2
while :
do
    stime=$(date -d "$stime 1day"  +%Y%m%d)
    format_day=`echo $stime|grep -o '[0-9]\{8\}'`
    result_day=`date -d "${format_day} -1 day" +%Y%m%d`
    echo $result_day
    if [[ $result_day -eq $etime ]]; then
        break;
    fi
done

测试:  sh getDate.sh 20170129 20170302
        20170129
        20170130
        ...
        20170228
        20170301
        20170302
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值