首页 > 解决方案 > 从 YYYYMMDD 到 DD-MON-YYYY 的日期参数格式转换

问题描述

谁能告诉我如何将日期参数值 YYYYMMDD(即 For ex-20171010)转换为日期格式“DD-MON-YYYY”(即 10-OCT-2017)。我还需要在执行脚本时验证用户指定为参数的日期。

注意:文件系统将仅支持 AIX 命令。我有如下建议,AIX 文件系统不支持。

参考页面 - https://www.unix.com/shell-programming-and-scripting/173248-converting-date-yyyymmdd-dd-mon-yyyy.html

https://www.unix.com/shell-programming-and-scripting/58675-change-date-dd-mmm-yyyy-mm-dd-yyyy.html

日期 -f 日期 -j 日期 -d

标签: unixaix

解决方案


St_dt="$2"
St_D="${St_dt#??????}"
tmp="${St_dt%??}"
St_M="${tmp#????}"
if [ $St_M -le 0 -o $St_M -gt 12 ];
then
echo "$St_M is invalid month."
exit 1
fi
St_Y="${tmp%??}"
case "$St_M" in
01) St_M=JAN ;;
02) St_M=FEB ;;
03) St_M=MAR ;;
04) St_M=APR ;;
05) St_M=MAY ;;
06) St_M=JUN ;;
07) St_M=JUL ;;
08) St_M=AUG ;;
09) St_M=SEP ;;
10) St_M=OCT ;;
11) St_M=NOV ;;
12) St_M=DEC ;;
esac
Start_dt="${St_D}-${St_M}-${St_Y}"
echo "$Start_dt"

推荐阅读