我想使用shell脚本将2015年8月18日的日期格式转换为“2015-08-18”

时间:2015-08-27 12:35:43

标签: shell date unix

我想使用shell脚本

将2015年8月18日的日期格式转换为“2015-08-18”

3 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

-d选项是特定于GNU的。

在这里,您不需要进行日期计算,只需重写已包含所有信息的字符串:

a=$(printf '%s\n' "$Prev_date" | awk '{
  printf "%04d-%02d-%02d\n", $6, \
  (index("JanFebMarAprMayJunJulAugSepOctNovDec",$2)+2)/3,$3}')

答案 2 :(得分:0)

如果没有awk,假设您的初始日期位于$mydate

IFS=- d=($mydate)
months=(Zer Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec)
z=1
while [[ ${months[$z]} != ${d[1]} ]]; do z=$((z+1)); done
printf "%s-%02d-%s\n" ${d[2]} $z ${d[0]}