Lawrence D'Oliveiro <_zealand> wrote:
> In message <1jpyxp8.1acm3vwngtq0sN%>, David Empson
> wrote:
>
> > And to answer your question, iOS is almost certainly using the same time
> > architecture as Mac OS X and typical BSD Unix systems, where the system
> > operates on UTC internally and converts to local time based on
> > /usr/share/zoneinfo.
>
> But you previously said that Apple was using IBM's "ICU" mechanism
> <http://groups.google.co.nz/group/comp.sys.mac.system/msg/c3613ce794020b6d>:
>
> This means that to update Mac OS X for daylight saving rule changes, it
> is necessary to patch both the zoneinfo files and the global ICU data
> files. If you patch one and not the other, some applications (including
> iCal) get very confused because they are using both the CoreFoundation
> calls and the C standard library calls. Observed symptoms include iCal
> thinking that October 2007 is also called September.
True, I'd forgotten that detail. I don't know whether iOS has inherited
that particular dual mode of operation, but it seems likely as
CoreFoundation is/was using ICU on Mac OS X, and CoreFoundation is also
used on iOS. (I'd need a jailbroken iOS device to have a look at the
relevant part of the file system.)
> Could such symptoms also include alarms going off at the wrong time?
Potentially, if Apple had updated one database but not the other one.
That isn't the case here, because if the iPhone had two databases which
had different transitions for NZDT, the old rules would have resulted in
the daylight saving transition happening a week later, and the alarms
would have only been wrong during the week where the rules differed.
We're past that point and recurring alarms are still going off an hour
earlier than the time specified on the alarm, so the bug is somewhere
else.
It is a weird bug. In UTC, the alarms are happening two hours earlier
than they were before the daylight saving transition (should have been
one hour earlier).
- Alarm is set for 8 a.m. (say).
- While in NZST, the alarm fires at 8 a.m. NZST (UTC+12).
- While in NZDT, the alarm fires at 7 a.m. NZDT (UTC+13), which is 6
a.m. NZST.
The behaviour is like the timed alarm mechanism is manually applying a
daylight saving correction on top of the one automatically applied by
the OS, but only for one sort of alarm.
--
David Empson