On Sun, Sep 24, 2023 at 12:35:18AM +0000, Andy Smith wrote: > $ curl -s > 'https://api.sunrise-sunset.org/json?lat=51.509865&lng=-0.118092&formatted=0' > | jq . > { > "results": { > "sunrise": "2023-09-24T05:47:54+00:00", > "sunset": "2023-09-24T17:57:14+00:00", > "solar_noon": "2023-09-24T11:52:34+00:00", > "day_length": 43760, > "civil_twilight_begin": "2023-09-24T05:16:19+00:00", > "civil_twilight_end": "2023-09-24T18:28:49+00:00", > "nautical_twilight_begin": "2023-09-24T04:37:02+00:00", > "nautical_twilight_end": "2023-09-24T19:08:06+00:00", > "astronomical_twilight_begin": "2023-09-24T03:56:14+00:00", > "astronomical_twilight_end": "2023-09-24T19:48:54+00:00" > }, > "status": "OK" > } > > The documentation is here: > > https://sunrise-sunset.org/api
Yes, that's pretty reasonable. The times are given in UTC, so they must be converted. Fortunately, GNU date can do that for us. As a one-liner: unicorn:~$ curl -s 'https://api.sunrise-sunset.org/json?lat=41.4483&lng=-82.1689&formatted=0' | jq -r .results.sunrise,.results.sunset | { read -r sunrise; read -r sunset; date "+Sunrise: %R" -d "$sunrise"; date "+Sunset: %R" -d "$sunset"; } Sunrise: 07:16 Sunset: 19:24 As a script: #!/bin/sh lat=41.4483 lng=-82.1689 curl -s "https://api.sunrise-sunset.org/json?lat=$lat&lng=$lng&formatted=0" | jq -r .results.sunrise,.results.sunset | { read -r sunrise read -r sunset date "+Sunrise: %R" -d "$sunrise" date "+Sunset: %R" -d "$sunset" }