我将日期作为函数中的变量传递。我想以不同的格式转换该日期。例子
DT=2015-12-08
想转换DT
成08-dec-2015
Unix。
答案1
假设 GNU 日期(即非嵌入式 Linux):
$ LC_TIME=C date --date=2015-12-08 +%d-%b-%Y
08-Dec-2015
答案2
如果您使用的是非嵌入式 Linux,或者更一般地说是具有 GNU 日期的系统,您可以使用它来排版任意日期。
LC_ALL=C date -d "$DT" +%d-%b-%Y | tr A-Z a-z
如果您没有 GNU 日期(或者即使有),您可以在纯 shell 中执行此操作。
case $DT in
*-01-*|*-1-*) month=jan;;
*-02-*|*-2-*) month=feb;;
*-03-*|*-3-*) month=mar;;
*-04-*|*-4-*) month=apr;;
*-05-*|*-5-*) month=may;;
*-06-*|*-6-*) month=jun;;
*-07-*|*-7-*) month=jul;;
*-08-*|*-8-*) month=aug;;
*-09-*|*-9-*) month=sep;;
*-10-*) month=oct;;
*-11-*) month=nov;;
*-12-*) month=dec;;
esac
echo "${DT##*-}-$month-${DT%%-*}"