我怎样才能转换14/Jul/2015
成14-08-2015
?
它说是invalid date format
因为Jul
元素,但如果我放的07
话它就可以正常工作。
我已经尝试过这个:
echo "Please enter the date: "
read X (here X is 14/Jul/2015)
a= date --date=$X '+%d-%b-%y'
echo "$a"
答案1
如果$x
包含14/Jul/2015
,则使用:
date -d "${x//\//-}" '+%d-%m-%Y'
它将打印:
14-07-2015
该date
实用程序无法识别斜杠分隔的字符串,因此您必须将其删除并用破折号 ( -
) 替换。
答案2
您的问题不在于Jul
,而是在于/
,因此使用例如参数替换机制删除它们:
echo "Please enter the date: "
read X
a=$(date --date="${X//\//-}" '+%d-%b-%y')
echo "$a"
请注意,您的变量分配也是错误的(后面不能有空格=
)并且命令替换应该用 括起来$()
。