Pregunta Fecha de formato AAAA-MM-DD en script de shell


Intenté usar $(date) en mi script bash shell, sin embargo, quiero la fecha en formato YYYY-MM-DD. ¿Cómo obtengo esto?


757
2017-09-09 19:06


origen


Respuestas:


En Bash:

obtener año mes dia de date

DATE=`date +%Y-%m-%d`

obtener hora del año-mes-día: minuto: segundo de date

DATE=`date '+%Y-%m-%d %H:%M:%S'`

Otros formatos de fecha disponibles se pueden ver desde páginas de manual de fecha:

man date

1303
2017-09-09 19:08



Tratar: $(date +%F)


256
2017-09-09 19:11



Puedes hacer algo como esto:

$ date +'%Y-%m-%d'

57
2017-09-09 19:08



Estas buscando ISO 8601 formato de fecha estándar, así que si tiene fecha de GNU (o cualquier comando de fecha más moderno que 1988) simplemente haga lo siguiente: $(date -I)


29
2018-06-19 15:49



date -d '1 hour ago' '+%Y-%m-%d'

El resultado sería 2015-06-14.


15
2017-09-07 08:05



Con Bash reciente (versión ≥ 4.2), puede usar el comando incorporado printf con el modificador de formato %(strftime_format)T:

$ printf '%(%Y-%m-%d)T\n' -1  # Get YYYY-MM-DD (-1 stands for "current time")
2017-11-10
$ printf '%(%F)T\n' -1  # Synonym of the above
2017-11-10
$ printf -v date '%(%F)T' -1  # Capture as var $date

5
2017-11-10 05:15



si desea el año en un formato de dos números como 17 en lugar de 2017, haga lo siguiente:

DATE=`date +%d-%m-%y`

4
2018-06-02 18:55



Cada vez que tengo una tarea así termino volviendo a

$ man strftime

para recordarme a mí mismo todas las posibilidades.


4
2018-05-08 21:25