Bash

如何在 Linux shell 中表示“2015120”中的日期格式?

  • January 21, 2015

我的同事正在生成具有先前日期格式的日誌文件,例如2015120,它表示一月1而不是01

我用來處理此類問題的常用方法是使用datecommand.Like date +'%Y%m%d'。但是我使用日期命令,結果他們沒有提到沒有前面的 0 代表一月。

所以我想知道是否有另一種方式來表示 2015120Linux 中的日期?

對於 GNU、FreeBSD 或 OS/X date(或date使用系統的 GNU 的實現libcstrftime(),在防止數字欄位被零填充之後libc添加連字元:-``%

$ date +'%Y%-m%d'
2015120

從GNU 系統上的man 日期開始:

預設情況下,日期用零填充數字欄位。以下可選標誌可能跟在 `%’ 後面:

-(連字元)不要填充欄位

如果您的系統date不支持,您可以使用perl

$ perl -MTime::Piece -e '
 $t = localtime;
 print $t->year, $t->mon, $t->mday;
'
2015122

引用自:https://unix.stackexchange.com/questions/180008