如何剪切日期/时间戳字符串?

Phi*_*ris 4 bash stat cut

所以我正在使用

 TIMESTAMP=$( stat -c "%y" $JARNAME.jar )
 print $TIMESTAMP
Run Code Online (Sandbox Code Playgroud)

它的输出类似于 2015-04-24 17:23:03.000000000 -0500

我只需要2015-04-24 17:23:03一部分

lcd*_*047 10

由于您似乎在使用 的 Linux 版本stat(1),我假设您也有 GNUcoreutils版本的date(1)

TIMESTAMP=$( date +'%Y-%m-%d %H:%M:%S' -r "$JARNAME".jar )
Run Code Online (Sandbox Code Playgroud)


don*_*sti 6

有了GNU stat你可以简单地使用点修正1引言之间(+字段宽度)%和字符指定格式例如stat --printf "%.19y" filename,所以你的情况:

TIMESTAMP=$(stat -c "%.19y" infile)
Run Code Online (Sandbox Code Playgroud)

有了BSD/OSX stat你可以使用-f格式)和-ttimefmt的)开关:

TIMESTAMP=$(stat -f '%Sm' -t '%Y-%m-%d %H:%M:%S' infile)
Run Code Online (Sandbox Code Playgroud)

1
点:与字段宽度一起,文本较长时不扩展字段,而是截断文本。