¿Cómo puedo imprimir la fecha que es un día antes de la hora actual en Bash?Obtenga la fecha (un día antes de la hora actual) en Bash
Respuesta
si tiene fecha de GNU y le he entendido bien
$ date +%Y:%m:%d -d "yesterday"
2009:11:09
o
$ date +%Y:%m:%d -d "1 day ago"
2009:11:09
Encontré la mayoría como respuesta sugerida, pero el modificador -d no se encuentra en la fecha de Solaris – conandor
No creo que esto funcione en FreeBSD o OS X. –
Para el uso en Ubuntu con función de fecha: $ (date +% Y:% m:% d -d "1 día atrás"), salida es: 2013: 04: 21. Y si desea que la fecha de 10 días antes, se puede utilizar $ (date +% Y:% M:% d -d "hace 10 días") o $ (date +% Y:% m: % d -d "10 días atrás") – zhihong
date --date='-1 day'
Erros en macOS Sierra:' fecha: opción ilegal - -'' – kuanb
Necesita instalar la versión GNU de 'date', disponible a través del paquete' coreutils', para hacer que esta sintaxis funcione en macOS. Si está utilizando Homebrew, puede instalarlo a través de 'brew install coreutils', luego de lo cual debería poder usar la fecha GNU a través del comando' gdate'. Consulte: https://www.topbug.net/blog/2013/04/14/install-and-use-gnu-command-line-tools-in-mac-os-x/ – Sumitsu
para macos puede usar 'date -v -1d' (mira la 'fecha del hombre') – silent
#!/bin/bash
OFFSET=1;
eval `date "+day=%d; month=%m; year=%Y"`
# Subtract offset from day, if it goes below one use 'cal'
# to determine the number of days in the previous month.
day=`expr $day - $OFFSET`
if [ $day -le 0 ] ;then
month=`expr $month - 1`
if [ $month -eq 0 ] ;then
year=`expr $year - 1`
month=12
fi
set `cal $month $year`
xday=${$#}
day=`expr $xday + $day`
fi
echo $year-$month-$day
+1 para la corrección, método interesante, aunque es un poco detallado. –
Hola medoix, no puedo encontrar el significado de $ {$ #}. Sé que $ # representa la cantidad de argumentos para un script/función. Pero no soy capaz de relacionarme con esto. Por favor ayuda. –
Esto no funciona el día anterior al cambio de mes. Por ejemplo, hoy es '1 de julio de 2013', el resultado que se imprimirá es' 2013-6-1347', mientras que el resultado esperado es '2013-6-30' – misguided
yesterday=`date -d "-1 day" %F`
Pone la fecha de ayer en el formato AAAA-MM-DD en la variable $yesterday
.
date +%Y:%m:%d -d "yesterday"
Para más detalles sobre el formato de fecha ver la página del manual de date
date --date='-1 day'
date --date='-1 day'
date +%Y:%m:%d|awk -vFS=":" -vOFS=":" '{$3=$3-1;print}'
2009:11:9
¿Qué tal si hoy es el 1 de enero? –
uso de Perl en su lugar, tal vez?
perl -e 'print scalar localtime(time - 86400) . "\n";'
O, uso y nawk (ab) usar/usr/bin/ADB:
nawk 'BEGIN{printf "0t%d=Y\n", srand()-86400}' | adb
Encontré this ... demasiado loco!
/usr/bin/truss /usr/bin/date 2>&1 | nawk -F= '/^time\(\)/ {gsub(/ /,"",$2);printf "0t%d=Y\n", $2-86400}' | adb
Lo siento, no menciono I en el sistema Solaris. Como tal, el modificador de fecha no está disponible en Solaris bash.
Descubro que puedo obtener la fecha anterior con un pequeño truco en la zona horaria.
DATE=`TZ=MYT+16 date +%Y-%m-%d_%r`
echo $DATE
Este método no es 100% confiable (aproximadamente 98% en realidad) si usted vive en un lugar que usa el horario de verano. – jlliagre
Si tiene BSD (OSX) date
puede hacerlo de esta manera:
date -j -v-1d
Wed Dec 14 15:34:14 CET 2011
O si usted quiere hacer cálculos de fechas en una fecha arbitraria:
date -j -v-1d -f "%Y-%m-%d" "2011-09-01" "+%Y-%m-%d"
2011-08-31
El La opción --date
o -d
solo está disponible en la fecha GNU.
$ date --date 'yesterday' +%F
date: illegal time format
usage: date [-jnu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ...
[-f fmt date | [[[[[cc]yy]mm]dd]HH]MM[.ss]] [+format]
Bueno, esta es una respuesta tardía, pero parece que funciona.
YESTERDAY=`TZ=GMT+24 date +%d-%m-%Y`;
echo $YESTERDAY;
Pruebe el siguiente código, que también se ocupa de la parte DST.
if [ $(date +%w) -eq $(date -u +%w) ]; then
tz=$((10#$gmthour - 10#$localhour))
else
tz=$((24 - 10#$gmthour + 10#$localhour))
fi
echo $tz
myTime=`TZ=GMT+$tz date +'%Y%m%d'`
Courtsey Ansgar Wiechers
DST solución consciente:
La manipulación de la zona horaria es posible para cambiar el reloj algunas horas. Debido al horario de verano, las 24 horas pueden ser hoy o anteayer.
Estás seguro de que ayer fue hace 20 o 30 horas. ¿Cúal? Bueno, el más reciente que no es hoy.
echo -e "$(TZ=GMT+30 date +%Y-%m-%d)\n$(TZ=GMT+20 date +%Y-%m-%d)" | grep -v $(date +%Y-%m-%d) | tail -1
El parámetro -e utilizado en el comando echo se necesita con bash, pero no funciona con ksh. En ksh puede usar el mismo comando sin el distintivo -e.
Cuando su script se utilizará en diferentes entornos, puede iniciar el script con #!/Bin/ksh o #!/Bin/bash. También puede sustituir el \ n de una nueva línea:
echo "$(TZ=GMT+30 date +%Y-%m-%d)
$(TZ=GMT+20 date +%Y-%m-%d)" | grep -v $(date +%Y-%m-%d) | tail -1
MAC OSX
Para la fecha de ayer:
date -v-1d +%F
donde 1d define día actual menos 1 día. Del mismo modo,
fecha -v-1W + F% - Fecha semana anterior
fecha -v-1m + F% - Fecha mes anterior
SI TIENE FECHA GNU ,
date --date="1 day ago"
Más información: https://www.cyberciti.biz/tips/linux-unix-get-yesterdays-tomorrows-date.html
- 1. C++ MFC Obtenga la fecha y hora actual
- 2. agregar día a la fecha actual
- 3. Fecha/hora actual de la fecha de la secuencia?
- 4. Obtener la fecha/hora actual en segundos
- 5. Rieles: Obtenga la hora de una fecha y hora
- 6. Bash fecha/hora aritmética
- 7. ¿Cómo obtener la fecha y hora actual?
- 8. Obtenga la hora actual, en milisegundos, en C?
- 9. Obtenga la hora de mañana xx: xx
- 10. gps regresa un día antes?
- 11. ¿Cómo determinar la fecha un día antes de una fecha determinada en Java?
- 12. PHP Fecha Hora Hora actual Agregar minutos
- 13. Cómo obtener la fecha y la hora actual de la columna Fecha/Hora en la lista personalizada de SharePoint
- 14. Almacenar la hora del día en SQL
- 15. Mostrar fecha/hora UTC en fecha/hora de acuerdo con la zona horaria actual
- 16. Obtenga el año/mes/día de una fecha y hora en php?
- 17. Rieles obteniendo la hora actual sin la fecha
- 18. Obteniendo la fecha y hora actual en JavaScript
- 19. cómo obtener la fecha y hora actual en SQL?
- 20. Cambiar la fecha y hora actual en php
- 21. Cómo obtener la fecha actual Hora formateada en Flex
- 22. cómo verificar la fecha y hora actual en Jquery
- 23. cómo obtener la fecha/hora actual como un objeto de fecha en PHP
- 24. Cómo visualizar un día de la fecha
- 25. Insertar fecha actual en formato de fecha y hora mySQL
- 26. ¿Cómo puedo verificar si la fecha/hora actual es posterior a una fecha/hora establecida?
- 27. Obtenga la siguiente fecha del día de la semana en JavaScript
- 28. php - Una hora antes que la fecha especificada
- 29. ¿Cómo llegar 30 días antes de la fecha actual?
- 30. cadena bash hasta la fecha
Fecha probada, pero parece que no hay un conmutador -d en el bash de Solaris 10 – conandor
Encontré otra gran solución al instalar la fecha gnu (paquete coreutil) desde sunfreeware. – conandor
ni hay un conmutador -d en la fecha de AIX – frankster