我正在使用GNU bash,版本4.3。我怎样才能将时区表示为小时和分钟?
这是代码。
./ time.sh
printf -v t '%(%s)T' -1
export TZ=UTC
counter=1
while [ "$counter" -le 10 ]
do
((t=t+600))
printf '%(%y-%m-%dT%H:%M:%S%z)T\n' "$t"
((counter++))
done
echo All done
结果如下。
#bash time.sh
18-01-17T07:29:50+0000
18-01-17T07:39:50+0000
18-01-17T07:49:50+0000
18-01-17T07:59:50+0000
18-01-17T08:09:50+0000
18-01-17T08:19:50+0000
18-01-17T08:29:50+0000
18-01-17T08:39:50+0000
18-01-17T08:49:50+0000
18-01-17T08:59:50+0000
All done
但我想显示结果格式,如'18 -01-17T08:59:50 + 00:00'。 我怎么能这样做?
答案 0 :(得分:1)
使用date
代替printf
:
date --iso-8601=seconds --date="@$t"
请注意,这假设为GNU date
; POSIX规范中不存在--iso-8601
参数。 POSIX也没有%:z
(甚至%z
),所以如果需要便携,你需要一个不同的解决方案。