Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I get the real time in iPhone, not the time set by user in Settings?

I need to ensure that my app gets the correct time, not the time set by the user in settings.

So for instance, once the user starts the app, I'd want to get a timestamp. The user would see the elapsed time on a timer on screen updated every second. When the user exits the app, and after some time restarts the app , the timer would just get the current time and compare it with the original timestamp it kept. So basically, just like the stopwatch in the Clock.App on iPhone.

Now the problem with the clock.app is that if the user goes and advances the time in Settings by one hour, this will influence the timer. Obviously I don't want that, because in my app, that would be cheating.

I'd need to get a more trustworthy time source to compare to.

I could get the time from the internet. But the problem is that I'd need internet connection , so only works on if there is an internet connection. My app needs to work offline preferably.

Is there some kind of internal clock I can access?

Is there a way of checking whether the user has changed the date time in Settings?

Any other ideas?

Thanks

like image 323
Maxm007 Avatar asked Sep 18 '09 09:09

Maxm007


People also ask

Why can't I turn off set automatically time on iPhone?

Go to Settings > General > Date & Time. Turn off Set Automatically. Now you can change the time zone or the date and time: Tap Time Zone and enter a city with the time zone that you need.

Why is my automatic Date and time wrong iPhone?

Open the “Settings” app and go to “General”, then to “Date & Time” Toggle the switch for “Set Automatically” to the ON position (if this is already set ON, turn it OFF for about 15 seconds, then toggle it back ON to refresh) Be sure the Time Zone setting is set properly for your region. Exit out of Settings.


1 Answers

Get the time from NIST with the Daytime Protocol:

UDP Based Daytime Service A server listens for UDP datagrams on UDP port 13. When a datagram is received, an answering datagram is sent containing the current date and time as a ASCII character string (the data in the received datagram is ignored).

NIST Format of response: JJJJJ YR-MO-DA HH:MM:SS TT L H msADV UTC(NIST) OTM

http://tf.nist.gov/service/its.htm

http://tf.nist.gov/tf-cgi/servers.cgi

like image 137
zaph Avatar answered Nov 03 '22 21:11

zaph