我正在尝试将月号转换为名称,但它将输出作为当前月而不是变量中给出的日期。
KornShell(ksh)代码:
datep= 2013-10-22
echo $datep |printf "%(%B)T\n"
答案 0 :(得分:1)
printf
不读取标准输入,因此假定今天的日期为%T
格式的默认参数;你需要提供日期作为参数。
printf "%(%B)T\n" "$datep"
答案 1 :(得分:0)
这样做:
$ datep="2013-10-22"
$ date -d"$datep" "+%B"
October
根据man date
,
-d, - date = STRING
显示时间由STRING描述,而不是'现在'
所以我们得到:
$ date -d"$datep"
Tue Oct 22 00:00:00 CEST 2013
然后你说你想要%B
,也就是man date
:
<强>%B 强>
locale的完整月份名称(例如,1月份)
所以这只是在字符串末尾使用格式的问题。
其他例子:
$ date -d"$datep" "+%Y" #year
2013
$ date -d"$datep" "+%F" #date
2013-10-22
$ date -d"$datep" "+%T" #time (if not given, gets the default)
00:00:00