我们可以使用内置printf函数打印当前时间,而无需调用date像这样的外部命令,如下所示:
printf '%(%Y-%m-%d:%H:%M:%S)T %s\n' -1
# sample output: 2019-03-30:17:39:36,846
Run Code Online (Sandbox Code Playgroud)
我们如何让 printf 也打印毫秒或纳秒?在格式字符串中使用%3N或%N不起作用:
printf '%(%Y-%m-%d:%H:%M:%S,%3N)T %s\n' -1 # outputs 2019-03-30:17:38:16,%3N
printf '%(%Y-%m-%d:%H:%M:%S,%N)T %s\n' -1 # outputs 2019-03-30:17:38:16,%N
Run Code Online (Sandbox Code Playgroud)
但是, date 命令工作正常:
date +%Y-%m-%d:%H:%M:%S,%3N # gives 2019-03-30:17:39:36,846
date +%Y-%m-%d:%H:%M:%S,%N # gives 2019-03-30:17:39:36,160643077
Run Code Online (Sandbox Code Playgroud)
这是在 Red Hat Linux 7.3 版上。