How to detect if device clock has been manually adjusted?

Our app provides medical treatment which is time sensitive. The requirement is to notify the user if clock gets manually adjusted and stop the treatment until the user corrects it. The problem is how to detect if device clock has been manually adjusted?

Initially, we try to use auto time setting, however, there's no API to retrieve it. Then we decide to use NTP server, but what if there's no internet access?

During app launch, if there's no internet access, if kernel boot time has not changed, we can assume the device clock has not been adjusted. If boot time has changed, how can we know the change is due to device reboot or user manually adjusted the clock?

Is there a way to use GPS time? CLLocation does give a timestamp, but it's the device timestamp not the location timestamp.

Thanks.