2015-01-13 8 views
5

--date=localgit logは私の(ユーザの)タイムゾーンで、日付を示していますユーザーのタイムゾーンでISO形式のgit log timestampsを表示しますか?

$ git log --date=local -3 --pretty=tformat:'%cd %h' --abbrev-commit 
Thu Dec 18 15:22:11 2014 dc20f74 
Thu Dec 18 14:01:26 2014 06c214f 
Tue Nov 4 03:48:44 2014 ac33158 

man-page氏は述べています

- 日付[...]のみ取る人間が読める形式で表示日付の効果、 --prettyを使用しているときなど。

しかし、ISO形式 %ciでそれは事実 --date=local--date=default製品の問題として、有効になりません正確に同じ出力:私はあまり詳細形式でgitのログを見ることができますどのように

$ git log --date=local -3 --pretty=tformat:'%ci %h' --abbrev-commit 
2014-12-18 23:22:11 +0000 dc20f74 
2014-12-18 22:01:26 +0000 06c214f 
2014-11-04 17:18:44 +0530 ac33158 

$ git log --date=default -3 --pretty=tformat:'%ci %h' --abbrev-commit 
2014-12-18 23:22:11 +0000 dc20f74 
2014-12-18 22:01:26 +0000 06c214f 
2014-11-04 17:18:44 +0530 ac33158 

私のローカルタイムゾーン?理想的には、私はUNIXの日付構文を使用するために'%C%m%dT%H%M%S'にそれらを見たいと思っています。

+0

2番目のコメントには '--date = default'が指定されていますが、最初に' --date = local'があります。これは意図的ですか? "デフォルトでは元のタイムゾーン(コミッターまたは著者のいずれか)のタイムスタンプが表示されます"と、gitのマンページは述べています。 – dcsohl

+0

それは悪いペーストだった。 '--date = local'は同じ出力を持ちます。私は質問を更新します。 –

+0

トップケースがユーザーのタイムゾーンにあることをどのように知っていますか?タイムゾーン情報は表示されず、そこに表示されているコミットは下部に表示されているコミットとは異なります。ちょっとした一貫性があるのはうれしいことです。 – dcsohl

答えて

0

%ci(ISO時刻形式)をローカルユーザーのタイムゾーンに変換して表示することはできないようです。コミッターのタイムゾーンに常に表示されます。 %ctを使用して、出力を解析し、dateなどのユーティリティで再フォーマットするか、%cdを使用します。

6

命令として-localを導入するgit 2.7(Q4 2015)では可能です。

--date=(relative|local|default|iso|iso-strict|rfc|short|raw) 

あなたも持っています:

それはのほかに、ということを意味

--date=(relative-local|default-local|iso-local|iso-strict-local|rfc-local|short-local|raw-local) 

あなたは今、ローカルタイムゾーンを使用して、任意の日付フォーマットを求めることができます。あなたのケースでは

git log --date=iso-local -3 --pretty=tformat:'%cd %h' --abbrev-commit 
       ^^^^^^^^^ 
        |____| that part is new! 

は参照commit 99264e9John Keeping (johnkeeping)によってcommit db7bae2commit dc6d782commit f3c1ba5commit f95cecfcommit 4b1c5e1commit 8f50d26commit 78a8441commit 2df4e29(2015年9月3日)。
commit add00ba,commit 547ed71(2015年9月3日)、Jeff King (peff)を参照してください。
commit 7b09c45Junio C Hamano -- gitster --、2015年10月5日によって吸収合併)特に

、言及commit add00ba

dateを:日付形式に "local" 直交ます

私たち」のほとんどは​​"のモードは、日付の形式に関するものです:どの項目をどのような順序で表示するか。
しかし、 "--date=local"は少し奇妙なものです。「通常の形式で日付を表示するが、ローカルのタイムゾーンを使用する」という意味です。
我々が使用するタイムゾーンは、実際の形式に直交し、そして我々は「ローカライズされたISO8601」を持つことができなかった理由がない、など

このパッチは、「struct date_mode」「local」ブールフィールドを追加し、低下DATE_LOCAL要素のdate_mode_type列挙型(これは今やちょうどDATE_NORMALlocal=1です)。
新しい機能には、任意の日付モード(「iso-local」など)に「-local」を追加してアクセスすることができ、下位互換性のために「default-local」のエイリアスとして「local」を保持します。

+1

これはgit 2.7.4-2.fc24のFedora上では期待通りに動作していないようです: 'git log - -date = iso-local -3 --pretty = tformat: '%cd%h' --abbrev-commit'は、タイムゾーン付きの '2016-03-11 15:51:49 +1000 67398e9'を生成します。 – seanf

関連する問題