The GSM network equivalent to NTP seems to be NITZ, which provides local time and time zone information if the base station has it. The iPhone apparently supports it, and that Wikipedia page claims that At&T will send it out. (However this post suggests that GSM base stations have no other need for accurate local time, so may not have it to send out -- so possibly it varies from base station to base station.) You may or may not have a "Set automatically" option on Settings->General->Date/Time (there isn't for me, but I have no NITZ; see below); it's not clear to me if that's firmware specific or GSM network specific or both.
You also don't seem to be alone in complaining about the accuracy of the time; there seem to be some Apps in the AppStore which will fetch time from NTP, but all the ones I can find (eg, Emerald Time) pointedly say that they don't actually set the system clock (rendering them nearly pointless); possibly they have insufficient privileges to do so.
(And alas, it appears that Vodafone in New Zealand (the Apple selected GSM carrier in New Zealand), do not provide NITZ. Certainly I find my iPhone will drift 30-40 seconds off NTP real time over the course of a few months. Sigh.)
It seems to be quite rare for carriers to actually send the time data. At one point voda in NZ certainly did, but of the Australian carriers I'm only aware of Telstra that have done so, and I've not seen it from the US GSM carriers.
My last phone seemed to get a time update from the network every few hours. My new phone never seems to -- but it's a different make of phone and on a different network, so who knows what the underlying reason is.
I suspect that as others have said, several of the phone's systems have very accurate notions of time, but the OS doesn't make use of them.
Just to rule out one option...I'd be pretty amazed if 2 phones physically touching each other were talking to different base stations.
In rural areas I'd agree with you, bit in a city, it's not usual at all.Parts of UMTS expect a phone to be in touch with multiple cells at the same time, but I'm not sure if that part has anything to do with providing the time of day.
This is the case for GSM, but my understanding is that 3G standards, being CDMA, require very precise clock sync. Perhaps this is not bubbled up from the baseband chipset.
You have to be on time, but that has nothing to do with knowing the correct wall-clock time.
I'm not talking TDMA timeslot, I'm talking CDMA spreading code scheduling. You have to be on time w.r.t. to the tower, but all the towers (and devices) must be synchronized for successful handoffs, and it turns out that wall-clock time is the best way to synchronize millions of devices (because you can leverage GPS).
You're right. I forgot all the 3G flavors used CDMA on the physical layer.
Of course, nothing says that the clock used the by the wireless chip needs to be exposed to the OS. There could be two totally independent clocks. WinMob devices, for example, typically allow the OS clock to be sync'd to your PC when you dock it.
very this. My local T-Mobile telco is sending times that are 14 minutes behind. I turned off the option to sync time to the network, but my phone has a drifting clock so I have to run a NTP app to fix it.
I thought GPS included an accurate clock in each transmission? Seems trivial to sync on boot off the GPS clock.
Right -- as a first cut at it, GPS is about as accurate in location as the time error times the speed of light: so about 30 nS to get within about 30 feet. Plenty close enough for Dali Clock, if it were being used.