我的意见是
./filename Apr 11 16 05:10:20 Jun 12 16 06:22:35
Run Code Online (Sandbox Code Playgroud)
我想转换Apr 11 16 05:10:20为16 04 11 05 10 20
我使用以下功能,
convert_date_2()
{
local months=( Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec )
local i
for (( i=0; i<11; i++ ))
do
[[ $1 = ${months[$i]} ]] && break
done
printf "%2d %02d %02d %02d %02d %02d \n" $3 $(( i+1 )) $2 $4 $5 $6
}
Start=$( convert_date_2 $1 $2 $3 $4 )
Stop=$( convert_date_2 $5 $6 $7 $8 )
echo $Start;
echo $Stop;
Run Code Online (Sandbox Code Playgroud)
但我得到的输出16 04 11 05 00 00和16 06 12 06 00 00.我其实我想要16 04 11 05 10 20和16 06 12 06 22 35.
我怎么修改这个?
您可以使用date命令本身来完成它.
date -d 'Apr 11 2016 05:10:20' '+%y %m %d %H %M %S'
Run Code Online (Sandbox Code Playgroud)
测试:
$ date -d 'Apr 11 2016 05:10:20' '+%y %m %d %H %M %S'
16 04 11 05 10 20
$ var_date="Jun 12 2016 06:22:35"
$ date -d "$var_date" '+%y %m %d %H %M %S'
16 06 12 06 22 35
Run Code Online (Sandbox Code Playgroud)
注:在这里,输入的日期格式有一年2016没有16.
更新:
试试这个 :
$ var_date="Jun 12 16 06:22:35"
$ date -d "$(echo $var_date | awk '$3="20"$3')" '+%y %m %d %H %M %S'
$ date -d "$(awk '$3="20"$3' <<< $var_date)" '+%y %m %d %H %M %S'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
125 次 |
| 最近记录: |