Bash 如何在Unix命令行中将格式为MMDDYYYY的日期字符串转换为YYYY-MM-DD?
在Unix命令行中,如何将格式为MMDDYYYY的日期字符串转换为格式为YYYY-MM-DD?例如,如何将020317转换为2017-02-03?谢谢 我试过这个,但恐怕不行Bash 如何在Unix命令行中将格式为MMDDYYYY的日期字符串转换为YYYY-MM-DD?,bash,date,parsing,unix,data-conversion,Bash,Date,Parsing,Unix,Data Conversion,在Unix命令行中,如何将格式为MMDDYYYY的日期字符串转换为格式为YYYY-MM-DD?例如,如何将020317转换为2017-02-03?谢谢 我试过这个,但恐怕不行 日期-d“020317” 这将产生此错误消息 日期:无效日期“020327” 带变量扩展的字符串操作 input_date=02032017 output_date=${input_date:4}-${input_date::2}-${input_date:2:2} 这应该行得通 DATE="02032017
日期-d“020317”
这将产生此错误消息
日期:无效日期“020327”
带变量扩展的字符串操作
input_date=02032017
output_date=${input_date:4}-${input_date::2}-${input_date:2:2}
这应该行得通
DATE="02032017"; date -d"$DATE" +%Y-%m-%d
以上答案有误
试试这个
month=$(cut -c 1-2)
date=$(cut -c 3-4)
year=$(cut -c 5-8)
date=$year-$month-$date
echo $date
您可以使用允许您指定传入日期格式的日期库,例如perl:
input_date=020312017
perl-MTime::Piece-sE'say Time::Piece->strtime($date,“%m%d%Y”)->ymd'--date=“$input\u date”
2017-02-03
欢迎使用堆栈溢出。请在问题中添加您自己的代码。你至少要展示你自己为解决这个问题所做的研究。嗯,恐怕不行。这将产生以下消息:日期:无效日期“020327”酷!这很有效。我在想,date
可以转换这个,因为它可以转换很多其他格式,但是如果不能,我会接受这个Bash答案。