如何在 Unix 命令行中将格式为 MMDDYYYY 的日期字符串转换为 YYYY-MM-DD?
How do I convert a date string in format MMDDYYYY to YYYY-MM-DD at the Unix command line?
如何从 Unix 命令行将 MMDDYYYY 格式的日期字符串转换为 YYYY-MM-DD 格式?例如,如何将 02032017 转换为 2017-02-03?谢谢!
我已经试过了,但恐怕行不通。
date -d "02032017"
这会产生此错误消息。
date: invalid date ‘02032017’
带变量扩展的字符串操作
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 的 Time::Piece:
input_date=02032017
perl -MTime::Piece -sE 'say Time::Piece->strptime($date, "%m%d%Y")->ymd' -- -date="$input_date"
2017-02-03
如何从 Unix 命令行将 MMDDYYYY 格式的日期字符串转换为 YYYY-MM-DD 格式?例如,如何将 02032017 转换为 2017-02-03?谢谢!
我已经试过了,但恐怕行不通。
date -d "02032017"
这会产生此错误消息。
date: invalid date ‘02032017’
带变量扩展的字符串操作
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 的 Time::Piece:
input_date=02032017
perl -MTime::Piece -sE 'say Time::Piece->strptime($date, "%m%d%Y")->ymd' -- -date="$input_date"
2017-02-03