web-dev-qa-db-ja.com

git:タイムゾーンとタイムスタンプの形式

Gitからタイムスタンプを取得できます。

"2011-10-04 12:58:36 -0600"

しかし、それを次のように表示する方法はありますか?

"2011-10-04 06:58:36"

したがって、私が望むのは-0600タイムゾーンオフセットを取り除くことです。これどうやってするの?ありがとう。

59
SandyBr

Git logについて質問する場合は、次の中から最も適切な形式を試して選択できます。

git log --date={relative,local,default,iso,rfc}

--date=localが最適な候補のようです。

これを永続的にするには、git config --global log.date localを使用します。

66
Lazy Badger
git log --date=local

トリックを行います。

git config --global log.date local
34
bond
TZ=UTC git log --date=local

非ローカルタイムゾーンのワンタイムゾーン出力を取得するため。

27
Christian

残念ながら、git log --date=local前の回答で説明したように、出力形式が変更されます。

要求された形式を維持するには(YYYY-MM-DD HH:mm)私は使用しなければなりませんでした:

git log --date=iso-local

しかし、それはgit 2.7以降でのみ機能します。

8
Fabio Marreco

形式(YYYY-MM-DD HH:hh)、次を使用できます。

git log --date=format:%Y-%m-%d\ %H:%M

Git Standupでも美しく動作します: https://github.com/kamranahmedse/git-standup

5
Will Wright

完全なコマンドライン回答:

TZ=GMT git show -s --format=%cd --date=iso-local
1
Kevin English

jveermanの投稿は本当に役に立ちました。

YYYY-MM-DD HH:MM:SS形式でgit日付を表示する場合:

DATE=$(git log -n 1 --pretty=format:"%ad" --date=iso)
echo "Date: ${DATE::20}"

ログ形式の場合、これを追加できました

[log]
date=format:%Y-%m-%d %H:%M:%S

〜/ .gitconfigに

コミットメッセージに自動的に追加された同じきれいにフォーマットされた日付/時刻を取得するのは試練でした。これを.git/hooks/prepare-commit-msgファイルに追加するまで、何も役に立たなかった:

DATE=$(git log -n 1 --pretty=format:"%ad" --date=iso)
echo "${DATE::20}" >> $1

主にデスクトップアプリを使用している場合は、コミットリストに正確な変更時刻が表示されると便利です。

これをグローバルにする方法はあるので、各ローカルリポジトリのprepare-commit-msgファイルを編集する必要はありませんか?

1
papaJupe

YYYY-MM-DD HH:MM:SS形式でgit日付を表示する場合:

DATE = $(git log -n 1 --pretty = format: "%ad" --date = iso)
echo「日付:$ {DATE :: 20}」

0
jveerman