Tengo lo siguiente en un script de shell. ¿Cómo puedo restar una hora mientras conserva el formato?reste 1 hora de la fecha en el script de shell de Unix
DATE=`date "+%m/%d/%Y -%H:%M:%S"`
Tengo lo siguiente en un script de shell. ¿Cómo puedo restar una hora mientras conserva el formato?reste 1 hora de la fecha en el script de shell de Unix
DATE=`date "+%m/%d/%Y -%H:%M:%S"`
Convierta a la marca de tiempo (un entero largo), reste la cantidad correcta de milisegundos, vuelva a formatear al formato que necesite.
duro para dar más detalles ya que no especifica un lenguaje de programación ...
Los siguientes comando funciona en las versiones recientes de GNU date
:
date -d '1 hour ago' "+%m/%d/%Y -%H:%M:%S"
i recieve -date: opción ilegal - d uso: fecha [-u] mmddHHMM [[cc] yy] [. SS] fecha [-u] [+ formato] fecha -a [-] sss [. fff] –
@shamir esto significa que su versión de fecha no admite esta opción. – dogbane
lo averiguo - lo publico porque ¿podría saber alguna otra forma de hacerlo en la máquina solaris? –
date -v-60M "+%m/%d/%Y -%H:%M:%S"
DATE=`date -v-60M "+%m/%d/%Y -%H:%M:%S"`
Si usted tiene fiesta versión 4.4+
puede usar la fecha interna de impresión y aritmética de bash:
printf "current date: %(%m/%d/%Y -%H:%M:%S)T\n"
printf "date - 60min: %(%m/%d/%Y -%H:%M:%S)T\n" $(($(printf "%(%s)T") - 60 * 60))
El $(printf "%(%s)T")
imprime los segundos de época, el $((epoch - 60*60))
es bash-aritmética, restando 1 hora en segundos. Impresiones:
current date: 04/20/2017 -18:14:31
date - 60min: 04/20/2017 -17:14:31
sí mi sistema operativo no lo admite, gracias de cualquier manera –
Esto no funciona en 'date' enviado en Ubuntu. – Flimm
@Flimm Esto funciona en OS X y espero que BSD también –
si es necesario restar con marca de tiempo:
timestamp=$(date +%s -d '1 hour ago');
Este trabajo en mi Ubuntu 16.04 date
: date --date="@$(($(date +%s) - 3600))" "+%m/%d/%Y -%H:%M:%S"
y la versión date
es date (GNU coreutils) 8.25
ahh .. estoy usando la cáscara script, mi fórmula es así -DATE = 'date" +% m /% d /% Y -% H:% M:% S "' y de DATE quiero restar 1 hora –
¿Se requiere que te quedes en shel l? Un script awk o perl en línea podría restar fácilmente una hora y la salida en su formato requerido. – CoreyStup