簡體   English   中英

以漂亮格式的git日志輸出(格式說明符)檢索時區?

[英]Retrieving timezone in pretty formatted git log output (format specifier)?

我正在嘗試打印帶有UTC / UNIX紀元秒時間戳,提交時區和短哈希的git日志。

我注意到https://git-scm.com/docs/git-log/2.17.1

%ad:作者日期(格式方面--date =選項)

%at:作者日期,UNIX時間戳

  • --date = raw將日期顯示為從紀元(1970-01-01 00:00:00 UTC)開始的秒數,后跟一個空格,然后是時區,以相對UTC的偏移量(一個+或-四個數字;前兩個是小時,后兩個是分鍾)。 即,好像時間戳是用strftime("%s %z")格式化的。 請注意,-local選項不會影響秒-自紀元值(始終以UTC度量),但是會切換隨附的時區值。

因此,我天真的嘗試了一下:

$ git --no-pager log --reverse --pretty='%at %z %h'
1528917616 %z 1cabbe9
1528960200 %z 3fad300
1528964789 %z ba4e746
1528964798 %z d39a4f8
...

顯然, %z不在git log --pretty / --format內擴展。

然后,由於某種偶然,我嘗試了此操作:

$ git --no-pager log --reverse --date=raw --pretty='%ad %h'
1528917616 +0000 1cabbe9
1528960200 +0000 3fad300
1528964789 +0000 ba4e746
1528964798 +0000 d39a4f8
1528967981 +0000 a9cdecb
1528970465 +0000 3e9cee9
....

...而這正是我想要的! 除此以外,這里沒有用於時區的單獨格式參數,因此如果需要,我無法將其移至其他地方,至少不能直接在git log命令中。

那么,有誰知道,如果我可以直接在git log使用格式說明符,並且該格式說明符只能為我提供提交時間戳的時區?

git log ,-- --pretty (或--format )沒有時區的占位符。 但是--date=format:可以。 似乎--date=raw等效於--date=format:"%s %z" 因此,如果只需要特定提交的時區,則可以嘗試:

git log -1 <commit> --pretty=%ad --date=format:%z

請注意, %ad用於作者日期。 如果要提交日期,請改用%cd 此外,還有一些用於預定義日期格式的占位符,例如%ai%at%cD等。如果使用這些占位符中的任何一個,則--date=format都將被忽略。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM