残念ながら、Gitはどの日付と時刻の形式を受け入れるかについて一貫性がありません。内部の標準形式は、Unixタイムスタンプ(つまり、1970年1月1日の午前0時からの秒数)とタイムゾーンオフセットの組み合わせです。
日付を指定するために、それはやや読みにくいです。GitによるISO8601の解釈を使用して、比較的読みやすく、常に明確な形式にします。使用しているコマンドによっては、minitechが指摘しているようにこれを取得できることが--date=iso
よくあり ます。のようになります2012-12-26 23:17:23 +0000
。
(--date=rfc
バージョンは同じように解釈されるという点で同様に明確ですが、それは平日を含みます。有効に見えるが、日が一致しない日付を指定できるので、私は個人的にそれを持っていることに反対しますSun, 26 Dec 2012 01:02:03 +0000
[今日、水曜日]などの日付。)
どこでも受け入れられているフォーマットについては、実行してくださいgit help commit-tree
。そのマニュアルページには、次のものが含まれています(少し再フォーマットしました)。
日付形式
、環境変数は、次の日付形式をサポートしますGIT_AUTHOR_DATE
。GIT_COMMITTER_DATE
Gitの内部形式:これは<unix timestamp> <timezone offset>
、<unix timestamp>
UNIXエモックからの秒数です。<timezone offset>
UTCからの正または負のオフセットです。たとえば、CET(UTCより2時間進んでいます)は+0200
です。
RFC 2822:たとえば、RFC2822で説明されている標準の電子メール形式Thu, 07 Apr 2005 22:13:13 +0200
。
ISO 8601:たとえば、ISO8601標準で指定されている日時2005-04-07T22:13:13
。パーサーは、T
文字の代わりにスペースも受け入れます。
注:さらに、日付部分は次の形式で受け入れられます:YYYY.MM.DD
、、MM/DD/YYYY
およびDD.MM.YYYY
。
michasが 指摘したように、一部の場所では「概算」を使用しているため、煩わしさが少なくなっています。これを掘り下げたい場合は、コードはGitにあります(GitリンクmichasのWorking With Datesdate.c
を介したリンク)。たとえば、以下はからです:git help revisions
リビジョンの指定
…</p>
<refname>@{<date>}
、たとえばmaster@{yesterday}
、HEAD@{5 minutes ago}
:接尾辞の後に@
中括弧のペアで囲まれた日付指定が続く参照(たとえば{yesterday}
、{1 month 2 weeks 3 days 1 hour 1 second ago}
または `{1979-02-26 18:30:00})は、前の時点での参照の値を指定します。…</li>