shell 月份转换

这篇博客介绍了如何在Shell脚本中进行日期和时间的转换。文章提供了两个示例,一个是将字符串"12/dec/2010:10:11:25"转换为"%Y %m %d %H:%M:%S"格式,另一个是定义了一个名为milliseconds2date的时间计算函数,该函数能将毫秒数转换为日期时间格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/bin/bash
checkMonth() {
month=$1
case $month in
*"Jan"*) newMonth=${month/Jan/01};;
*"Feb"*) newMonth=${month/Feb/02};;
*) newMonth=$month
esac
echo $newMonth
}


month1=`checkMonth "11/Jan/2016:12:12:12"`

echo "${month1:6:4} ${month1:3:2} ${month1:0:2} ${month1:11:5}"

------------------------------------------------------------------------------------------------------------------------

其实一条命令可以实现上面的

strDate="12/dec/2010:10:11:25"
date -d "`echo $strDate | sed 's/\// /g' | sed 's/:/ /'`" '+%Y %m %d %H:%M:%S'


---------------------------------------------------------------------------------------------------------------------------
shell调试参照
http://blog.youkuaiyun.com/taiyang1987912/article/details/39897653

------------------------------------------------------------------------------------------------------------------

时间计算函数

function milliseconds2date {
    echo "$1" | awk '{
        i=$1; ms=i%1000; i=int(i/1000); ss=i%60; i=int(i/60); nn=i%60; i=int(i/60); hh=i%24; dd=int(i/24); 


i=int(i/24);
        a=i+2472632; b=int((4*a+3)/146097); c=int((-b*146097)/4)+a; 
        d=int((4*c+3)/1461); e=int((-1461*d)/4)+c; m=int((5*e+2)/153);
        dd=-int((153*m+2)/5)+e+1; mm=int(-m/10)*12+m+3; yy=b*100+d-4800+int(m/10);
        printf ("%4d-%02d-%02d %02d:%02d:%02d.%03d\n",yy,mm,dd,hh,nn,ss,ms)
    }'
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值