единственная правильная стратегия при работе с форматом даты и времени - сначала преобразовать его в секунды эпохи, добавить требуемое смещение, а затем преобразовать обратно в нужный формат даты и времени.В противном случае рано или поздно вы получите неправильно рассчитанную отметку даты / времени.
, например, для отметки времени, например "5:31:51 AM"
, на bsd / mac добавление 1 часа будет:
bash $ echo "5:31:51 AM" | xargs -L1 -I{} date -j -f"%H:%M:%S %p" {} "+%s" | xargs -I{} echo {}+3600 | bc | xargs -I{} date -j -f"%s" {} "+%H:%M:%S %p"
06:31:51 AM
в linux (gnu date), кли немного отличается (из-за утилиты date):
bash $ echo '"5:31:51 AM"' | xargs -L1 -I{} date -d{} "+%s" | xargs -I{} echo {}+3600 | bc | xargs -I{} date -d @{} "+%H:%M:%S %p"
06:31:51 AM
bash $
после этого вы можете подключить свой curl / jq, но я покажу его, используя мойутилита json - jtc
(версия для Mac):
bash $ curl -s "https://api.sunrise-sunset.org/json?lat=46.745995&lng=7.122781&date=today" | jtc -w'[results][sunrise]' | xargs -L1 -I{} date -j -f"%H:%M:%S %p" {} "+%s" | xargs -I{} echo {}+3600 | bc | xargs -I{} date -j -f"%s" {} "+%H:%M:%S %p"
06:31:51 AM
bash $