是否可以在不调用诸如date之类的外部命令的情况下获得时间戳?

oxn*_*xnz 3 bash shell zsh tcsh

zsh内置函数print具有-P执行快速扩展的选项,可用于获取当前时间。我想知道是否还有其他方法可以实现这一目标?那其他的壳呢?

che*_*ner 5

bash4.2引入了printf内置的新格式说明符。不带参数的情况下,它将以给定的格式显示当前时间。

# Default is the current time
$ printf "%()T\n"
8:30 
# Current year
$ printf "%(%Y)T\n"
2015
Run Code Online (Sandbox Code Playgroud)

整数参数被视为自1970年1月1日以来的秒数。

$ printf "%(%Y-%m-%d)T\n" 1234567890
2009-02-13
Run Code Online (Sandbox Code Playgroud)

相同的作品在(的某些版本中)kshbash大概是从中借用的。