2011-10-04 27 views
45

De git puedo conseguir la marca de tiempo:git: zona horaria y la fecha y hora formato

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

pero ¿hay alguna manera de mostrar como:

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

Así que todo lo que quiero es para deshacerse de el offset de zona horaria -0600. ¿Cómo puedo hacer esto? Gracias.

+0

FYI, '2011-10-04 12:58:36 -0600' sería' 2011-10-04 18: 58: 36' UTC. Has convertido incorrectamente en tu ejemplo. –

Respuesta

46

Si preguntas acerca de git log, se puede tratar de seleccionar la forma más correcta de

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

--date = local parece como mejor candidato

+37

Para hacer esto "permanente", use "git config --global log.date local". – rickumali

+10

'local' funciona. Aparentemente, un compromiso incluye su propia zona horaria, pero 'local' los traduce a todos en la zona horaria local. Sin embargo, realmente quiero que ISO o RFC se traduzcan a una única zona horaria. ¿Alguien sabe cómo hacer eso? – cdunn2001

+1

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

21
TZ=UTC git log --date=local 

con el fin de conseguir que no es local -timezone salida de zona horaria.

+0

'TZ = UTC git log --date = iso-local' para usar ISO 8601 – Brice

+1

O' --date = 'format-local:% Y% m% dT% H% M% SZ'' para un formato compacto ISO 8601 (o cualquier otro formato). – robinst

31
git log --date=local 

Tiene el truco.

git config --global log.date local 
+1

Cuando ejecuto: 'git log --date = local --pretty = formato:"% ai,% an,% ae,% s "', sigo recibiendo el desplazamiento de la zona horaria. ¿No funciona '--data = local' con ** fechas **? – user2436428

+0

@ user2436428 si marca [git log documentation] (https://git-scm.com/docs/git-log) busca _format: _ verá que necesita usar: _ **% ad **: fecha del autor (el formato respeta - fecha = opción) _ en lugar de _ **% ai **: fecha del autor, formato ISO 8601_ – ptha

0

Si desea mostrar la fecha en git AAAA-MM-DD HH: MM: SS:

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

5

Desafortunadamente, el uso git log --date=local como se explica en las respuestas anteriores cambia el formato de salida.

Para mantener el formato que se le preguntó (YYYY-MM-DD HH:mm) que tenía que utilizar:

git log --date=iso-local 

Pero eso sólo funciona en Git 2.7 o superior.

4

Para obtener el formato (YYYY-MM-DD HH:hh), puede utilizar:

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

funciona de maravilla con Git Standup también: Poste https://github.com/kamranahmedse/git-standup

+1

'--date = format: ...' me pasó, gracias! – Anto

1

de jveerman fue muy útil:

Si desea para mostrar la fecha de git en formato YYYY-MM-DD HH: MM: SS:

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

Para el formato de registro que era capaz de añadir este

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

a mi ~/.gitconfig

pero conseguir la misma fecha/hora con un formato agradable añadido automáticamente a mis mensajes cometer fue un calvario. No encontré nada útil hasta que he añadido esto a los .git/ganchos/prepare-commit-msg archivo:

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

Si está utilizando principalmente la aplicación de escritorio, es una maravilla que tienen el tiempo exacto de cambio se muestra con la lista de compromisos!

¿Hay alguna manera de hacer esto global, así que no tengo que editar el archivo de preparación de repo cada archivo local de commit?

Cuestiones relacionadas