在 Bash 4.2 中,为 printf 引入了 shell 内置的时间转换:格式规范 %(datefmt)T 使 printf 输出与格式字符串 datefmt 对应的日期时间字符串,正如 strftime 所理解的那样。

Section 46.1: 获取当前日期

$ printf '%(%F)T\n'
2016-08-17

Section 46.2: 将变量设置为当前时间

$ printf -v now '%(%T)T'
$ echo "$now"
12:42:47