Получить 60 минут до и после заданной временной метки - Shell / ksh

i=0
while case $((i+=1)) in
      ([6-9])
          echo "$i";;
      (??)
          ! echo "$i"
      esac
do :; done
0
17.05.2018, 02:50
1 ответ

Suponiendo que la zona horaria esté configurada correctamente y la fecha GNU, puede obtener la marca de tiempo de Unix, restar, agregar 60 minutos y volver a convertirla al formato necesario:

$ ts=$(date -d "2018-05-16 21:30:00" +%s)  # For BSD date: date -jf "%F %T" "2018-05-16 21:30:00" +%s 
$ echo "$(date -d@$((ts - 3600)) +"%F %T")"
2018-05-16 20:30:00
$ echo "$(date -d@$((ts + 3600)) +"%F %T")"
2018-05-16 22:30:00

... Creo que esto no tiene en cuenta correctamente los segundos intercalares y varios otros problemas que todo programador debería saber sobre el tiempo .

0
28.01.2020, 04:22

Теги

Похожие вопросы