2011-10-04 24 views
45

Da git posso ottenere il timestamp:git: fuso orario e timestamp formato

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

ma c'è un modo per mostrare come:

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

Quindi tutto quello che voglio è di sbarazzarsi di l'offset del fuso orario di -0600. Come posso fare questo? Grazie.

+0

FYI, '2011-10-04 12:58:36 -0600' sarebbe' 2011-10-04 18: 58: 36' UTC. Hai convertito in modo errato nel tuo esempio. –

risposta

46

Se chiedete su git log, si può provare e scegliere forma più corretta dal

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

--date = locale sembra come miglior candidato

+37

Per rendere questo "permanente", utilizzare "git config --global log.date local". – rickumali

+10

'local' funziona. Apparentemente, un commit include il proprio fuso orario, ma 'local' li traduce tutti nel fuso orario locale. Tuttavia, voglio davvero che ISO o RFC vengano tradotti in un singolo fuso orario. Qualcuno sa come farlo? – cdunn2001

+1

@ cdunn2001 vedere http://stackoverflow.com/a/32990648/6309 – VonC

21
TZ=UTC git log --date=local 

al fine di ottenere non locale -timezone output one-timezone.

+0

'TZ = UTC git log --date = iso-local' per usare ISO 8601 – Brice

+1

Oppure' --date = 'format-local:% Y% m% dT% H% M% SZ'' per un formato ISO 8601 compatto (o qualsiasi altro formato). – robinst

31
git log --date=local 

Il trucco.

git config --global log.date local 
+1

Quando corro: 'git log --date = local --pretty = formato:"% ai,% an,% ae,% s "', ottengo ancora l'offset del fuso orario. Non '--data = local' funziona con ** iso ** date? – user2436428

+0

@ user2436428 se si seleziona [git log documentation] (https://git-scm.com/docs/git-log) si cerca _format: _ vedrai che devi utilizzare: _ **% ad **: data dell'autore (formato rispetta --data = opzione) _ invece di _ **% ai **: data dell'autore, formato ISO 8601_ – ptha

0

Se si desidera visualizzare la data git nel formato AAAA-MM-GG HH: MM: SS:

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

5

Purtroppo, utilizzando git log --date=local come spiegato nelle risposte precedenti cambia il formato di output.

Per mantenere il formato come chiesto (YYYY-MM-DD HH:mm) ho dovuto usare:

git log --date=iso-local 

Ma questo funziona solo su git 2.7 o superiore.

4

Per ottenere il formato (YYYY-MM-DD HH:hh), è possibile utilizzare:

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

funziona benissimo con Git Standup troppo: dopo https://github.com/kamranahmedse/git-standup

+1

'--date = format: ...' ha fatto il trucco per me, grazie! – Anto

1

di jveerman è stato davvero utile:

Se si desidera per visualizzare la data git in AAAA-MM-GG HH: MM: Formato SS:

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

Per il formato di registro sono stato in grado di aggiungere questo

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

alla mia ~/.gitconfig

ma ottenere lo stesso con una formattazione data/ora aggiunti automaticamente ai miei messaggi di commit è stato un calvario. Ho trovato nulla di utile fino a quando ho aggiunto questo ai .git/ganci/preparare-commit-msg di file:

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

Se si sta utilizzando prevalentemente l'applicazione desktop, è bello avere l'ora esatta di cambio indicato con l'elenco degli impegni!

C'è un modo per rendere globale questo, quindi non devo modificare ogni file di preparazione al commit del file repo locale?

Problemi correlati