1

我想将 git 日期转换为 Ymd 的格式。这是我的尝试:

$>>git log -1 --format="%cd" | xargs date Y%m%d

但这会返回此错误:

date: extra operand ‘Thu’
Try 'date --help' for more information.

任何想法如何像这样转换 git 日期:

Thu Sep 19 17:03:12 2013 +0100

对于这样的事情:

20130919

谢谢。

4

3 回答 3

9

如果您git发出 UNIX 时间戳会更容易。说:

git log -1 --format="%at" | xargs -I{} date -d @{} +%Y%m%d

文档中:

%at:作者日期,UNIX 时间戳

于 2013-09-19T16:21:05.137 回答
3

而不是 using %cd,使用%ctwhich 将获取时间戳:

git log -1 --format="%ct" | xargs -i --  date -d '@{}' '+%Y%m%d'
于 2013-09-19T16:29:02.277 回答
2

你想要| xargs -i date -d {} +%Y%m%d……

请注意-d用于传递当前时间以外的日期的选项(并xargs -i在命令行中间获取它)和+指定日期格式说明符(以及缺少%的 for %Y)。

等效地,没有xargs,

date -d "$(git log -1 --format="%cd")" +%Y%m%d
于 2013-09-19T16:17:23.817 回答