Obtener la fecha de ayer en Linux
-
Use el comando
fecha
para obtener la fecha de ayer en Linux -
Use la variable
tz
para obtener la fecha de ayer en Linux
Bash es una popular interfaz de shell y línea de comandos para Linux, y proporciona muchas herramientas y funciones valiosas para trabajar con fechas y horas. En este artículo, exploraremos varios enfoques diferentes para obtener la fecha de ayer en Bash en Linux, y también discutiremos cómo garantizar que la fecha sea segura para el horario de verano (DST, por sus siglas en inglés).
Use el comando fecha
para obtener la fecha de ayer en Linux
Una de las formas más sencillas de obtener la fecha de ayer en Bash es usar el comando fecha
. Este comando le permite formatear la salida de la fecha y hora actual de muchas maneras diferentes, y puede usarlo para mostrar la fecha en el formato que necesita.
Por ejemplo, para obtener la fecha de ayer en el formato YYYY-MM-DD
, puede usar el siguiente comando:
date -d "yesterday" +%F
Producción :
2022-11-26
Este comando utiliza la opción -d
para especificar una cadena de fecha (en este caso, "ayer"
) y el especificador de formato +%F
para imprimir la fecha en el formato AAAA-MM-DD
. Esto devolverá la fecha de ayer en el formato especificado, como 2022-11-26
para el 26 de noviembre de 2022.
Sin embargo, este enfoque tiene algunas limitaciones. Por ejemplo, se basa en la zona horaria local del sistema y no tiene en cuenta el horario de verano (DST).
Esto significa que el resultado puede no ser exacto si la fecha se encuentra dentro de un período de transición de horario de verano. Para resolver este problema, podemos usar un enfoque diferente considerando el horario de verano.
Una forma de hacerlo es usar la opción -u
con el comando fecha
, que le indica que use la zona UTC en lugar de la zona horaria local. Esto garantizará que la fecha se calcule utilizando una zona horaria fija y evitará cualquier problema con las transiciones de horario de verano.
Aquí hay un ejemplo del uso de esta opción para obtener la fecha de ayer en el formato YYYY-MM-DD
.
date -u -d "yesterday" +%F
Producción :
2022-11-26
Este comando es similar al anterior pero añade la opción -u
para usar la zona UTC. Esto devolverá la fecha de ayer en el formato especificado, pero se calculará utilizando la zona UTC en lugar de la zona horaria local.
Use la variable tz
para obtener la fecha de ayer en Linux
En Bash, la variable de entorno tz
no es estándar. Es una variable definida por el usuario que se puede utilizar para almacenar la zona horaria del sistema.
Este valor puede ser utilizado por programas que dependen de la zona horaria para calcular o mostrar fechas y horas.
Por ejemplo, la variable TZ
se puede establecer en una cadena de zona horaria como "América/Los_Ángeles"
o "Europa/París"
para especificar la zona horaria deseada. Tenga en cuenta que el formato y el contenido de la cadena de zona horaria pueden variar según el sistema y la base de datos de zona horaria que utilice.
Podemos utilizar la variable tz
y la variable $EPOCHSECONDS
para obtener la fecha de ayer.
printf -v tz '%(%z)T' -1
TZ=$tz printf -v yesterday '%(%Y-%m-%d)T' $(( EPOCHSECONDS - 86400 ))
echo $yesterday
Producción :
2022-11-26
El código establece la zona horaria del sistema e imprime la fecha del día anterior en el formato especificado (YYYY-MM-DD
). La bandera -v
para el comando printf
asigna la salida del comando a una variable (tz
para la zona horaria y ayer
para la fecha del día anterior).
El argumento -1
para el primer comando printf
especifica la zona horaria actual del sistema. El segundo comando printf
usa la variable de entorno TZ
para establecer la zona horaria y la expresión $(( POCHSECONDS - 86400 ))
para calcular la fecha del día anterior en tiempo de época (la cantidad de segundos que han transcurrido desde el 1 de enero de 1970).
La cadena de formato %(%Y-%m-%d)T
especifica el formato de fecha deseado, y el comando echo
imprime la fecha en el terminal.
Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.
LinkedIn