使用GNU日期转换git日期

时间:2013-09-19 16:11:01

标签: git bash date xargs

我想将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

感谢。

3 个答案:

答案 0 :(得分:9)

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

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

来自documentation

  

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

答案 1 :(得分:3)

不使用%cd,而是使用%ct来获取时间戳:

git log -1 --format="%ct" | xargs -i --  date -d '@{}' '+%Y%m%d'

答案 2 :(得分:2)

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

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

等效,没有xargs

date -d "$(git log -1 --format="%cd")" +%Y%m%d