git: часовой пояс и формат метки времени - PullRequest
57 голосов
/ 04 октября 2011

Из мерзавца я могу получить метку времени:

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

но есть ли способ показать это как:

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

Так что все, что я хочу, это избавиться от смещения часового пояса -0600. Как я могу это сделать? Спасибо.

Ответы [ 8 ]

64 голосов
/ 04 октября 2011

Если вы спросите о git log, вы можете попытаться выбрать наиболее правильную форму из:

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

--date=local кажется лучшим кандидатом.

Чтобы сделать это постоянным,используйте git config --global log.date local.

33 голосов
/ 09 апреля 2013
git log --date=local

Делает трюк.

git config --global log.date local
27 голосов
/ 27 февраля 2013
TZ=UTC git log --date=local

для получения выходного сигнала не местного часового пояса.

8 голосов
/ 25 января 2016

К сожалению, использование git log --date=local, как описано в предыдущих ответах, изменяет формат вывода.

Чтобы сохранить формат в соответствии с запросом (YYYY-MM-DD HH:mm), мне пришлось использовать:

git log --date=iso-local

Но это работает только на git 2.7 или выше.

5 голосов
/ 27 сентября 2016

Чтобы получить формат (YYYY-MM-DD HH:hh), вы можете использовать:

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

Прекрасно работает и с Git Standup: https://github.com/kamranahmedse/git-standup

1 голос
/ 06 февраля 2019

Полный ответ командной строки:

TZ=GMT git show -s --format=%cd --date=iso-local
1 голос
/ 01 февраля 2017

пост jveerman был действительно полезен:

Если вы хотите отобразить 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 голосов
/ 12 ноября 2015

Если вы хотите отобразить git-дату в формате ГГГГ-ММ-ДД ЧЧ: ММ: СС:

ДАТА = $ (git log -n 1 --pretty = формат: "% ad" --date = iso)
echo "Date: $ {DATE :: 20}"

...