Obtener la fecha de ayer es una tarea frecuente en la creación de scripts y la automatización en Linux. Esta guía presenta dos métodos confiables usando el comando date
integrado y explora las consideraciones para el manejo de zonas horarias.
Tabla de Contenido
Usando el comando date
El enfoque más simple implica usar directamente la funcionalidad «ayer» integrada del comando date
:
date -d "yesterday" +%Y-%m-%d
Este comando:
date
: Invoca el comando date.-d "yesterday"
: Especifica que queremos la fecha de ayer.+%Y-%m-%d
: Formatea la salida como AAAA-MM-DD. Puedes personalizar esto (ej.,+%F
,+%Y/%m/%d
,+%d/%m/%Y
).
Ejemplo: Si hoy es 2024-10-27, la salida será: 2024-10-26
Manejo de Zonas Horarias para Mayor Precisión
Para scripts que requieren cálculos de fecha precisos en diferentes zonas horarias, se necesita un método más robusto. Si bien el método anterior suele ser suficiente, pueden surgir inconsistencias debido a los cambios de horario de verano. Este enfoque refinado usa tiempo de época:
date -d "@$(($(date +%s) - 86400))" +%Y-%m-%d
Este comando:
date +%s
: Obtiene la hora actual en segundos desde la época (1 de enero de 1970, 00:00:00 UTC).$(...)
: Sustitución de comandos, capturando la salida del comando interno.- 86400
: Resta 86400 segundos (un día).@(...)
: Le indica adate
que interprete el valor anterior como segundos desde la época.date -d "..." +%Y-%m-%d
: Formatea el tiempo de época resultante como AAAA-MM-DD.
Este método asegura la precisión manipulando directamente el tiempo de época, evitando posibles ambigüedades relacionadas con la zona horaria.
Para la mayoría de los escenarios, el primer método usando date -d "yesterday"
es suficiente. Sin embargo, para aplicaciones críticas o scripts entre zonas horarias, el segundo enfoque proporciona una solución más confiable. Recuerda adaptar el formato de salida a tus necesidades específicas.