git:时区和时间戳格式


76

从git我可以得到时间戳:

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

但是有什么方法可以显示为:

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

因此,我要做的就是摆脱-0600时区偏移。我怎样才能做到这一点?谢谢。


6
仅供参考, 2011-10-04 12:58:36 -0600应该是2011-10-04 18:58:36UTC。您在示例中转换错误。
马特·约翰逊·品脱

Answers:


88

如果您询问有关git log的信息,可以尝试从以下选项中选择最正确的形式:

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

--date=local 似乎是最佳人选。

要使其永久存在,请使用git config --global log.date local


48
要使其“永久”,请使用“ git config --global log.date local”。
rickumali 2011年

12
local作品。显然,提交包含其自己的时区,但是local将它们全部转换为本地时区。但是,我确实希望将ISO或RFC转换为单个时区。有人知道该怎么做吗?
cdunn2001

2
啊! --date=iso-strict-local用于严格的ISO8601。甜!
cdunn2001

2
我不知道为什么我的Ubuntu机器无法--date=local使用isoformat。我仍然在获得TZ偏移。请提供任何帮助
user2436428 '16

1
我在答案本身@rickumali中添加了有关如何使其永久化的评论。谢谢
伊利亚·林恩

35
git log --date=local

绝招。

git config --global log.date local

1
当我运行:时git log --date=local --pretty=format:"%ai,%an,%ae,%s",我仍然会得到时区偏移。不--data=local与工作ISO日期?
user2436428

@ user2436428如果您检查git log文档搜索格式:<字符串>,您将看到您需要使用:%ad:作者日期(格式方面--date =选项),而不是%ai:作者日期,类似于ISO 8601的格式
ptha

32
TZ=UTC git log --date=local

为了获得非本地时区的一时区输出。


TZ=UTC git log --date=iso-local使用ISO 8601
布莱斯

4
--date='format-local:%Y%m%dT%H%M%SZ'用于紧凑的ISO 8601格式(或任何其他格式)。
罗宾斯特

我曾经date = format-local:%a %d-%b-%Y %H:%MFri 05-Oct-2018 19:55。以下是日期格式的列表stackoverflow.com/a/34778736/58678
hIpPy

8

不幸的是,git log --date=local如先前答案中所述使用会更改输出格式。

为了保持要求的格式(YYYY-MM-DD HH:mm),我必须使用:

git log --date=iso-local

但这仅适用于git 2.7或更高版本。



2

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文件?



0

如果要以YYYY-MM-DD HH:MM:SS格式显示git日期:

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.