【问题标题】:Convert git date using GNU date使用 GNU 日期转换 git 日期
【发布时间】:2013-09-24 20:12:46
【问题描述】:

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

谢谢。

【问题讨论】:

    标签: git bash date xargs


    【解决方案1】:

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

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

    来自documentation:

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

    【讨论】:

      【解决方案2】:

      不要使用%cd,而是使用%ct,这将获得时间戳:

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

      【讨论】:

        【解决方案3】:

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

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

        等效地,没有xargs,

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2023-03-14
          • 2016-07-07
          • 2023-04-07
          • 2020-08-05
          • 2019-04-05
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多