I have no idea how this works on Mac OS X but one have to remember that on Mac OS X the Posix APIs are just another set of APIs and, as Apple sees, not the preferred APIs to use. The APIs that are usually preferred on Mac OS X are the Objective-C APIs.
/Jacob Carlborg On 16 jan 2011, at 13:19, Jonathan M Davis wrote: > On Sunday 16 January 2011 03:50:08 Jacob Carlborg wrote: >> Don't know if it helps but I found this: >> >> /etc/localtime local time zone file >> /usr/share/zoneinfo time zone directory >> /usr/share/zoneinfo/posixrules rules for POSIX-style TZ's >> /usr/share/zoneinfo/GMT for UTC leap seconds >> >> If the file /usr/share/zoneinfo/GMT does not exist, UTC leap seconds are >> loaded from /usr/share/zoneinfo/posixrules. >> >> http://developer.apple.com/library/mac/#documentation/darwin/reference/manp >> ages/man3/tzsetwall.3.html > > Welll, the leap seconds are universal. Those won't vary from time zone to > time > zone. The time zone files themselves may or may not have them, so if a > program > reading them in wants to actually use leap seconds, and all it's going by is > the > time zone files, then whether or not leap seconds are used would depend on > whether they're in the time zone file or not. However, it's quite possible > that > posixrules and GMT contain leap seconds and a program (or the OS) could take > the > leap seconds from there and apply them to any time zone which doesn't have > leap > seconds in its time zone file. > > Regardless, the posix standard says to ignore leap seconds, so that's what > glibc > and Linux does. However, that's not to say that the Mac isn't doing something > different. > > From what I recall, all of the time zones in right/ had leap seconds in them > and > none of the others did, but it's quite possible that posixrules and GMT do, > and > I forgot. So, the OSX may just load them from there. It certainly sounds like > it > does in that documentation. > > Regardless, I'm not terribly interested in leap seconds (I think that they > should be abolished along with DST) - particularly since the Posix standard > disallows them - but since they _are_ in certain time zone files, and some > crazy > programmer may want to use them, or some poor programmer may be forced to use > them, it seemed like I might as well make it so that > std.datetime.PosixTimeZone > applied leap seconds to time zones whose time zone file contained leap > seconds. > So, I did. > > However, with the current design of PosixTimeZone, if a programmer wants to > use > leap seconds, they need to pick a time zone whose file includes leap seconds. > There's no way to grab the time zone rules from one file and the leap seconds > from another. So, you couldn't use leap seconds on a Mac unless you brought > along your own time zone files. But since you can't do it on _Windows_ > without > bringing along your own time zone files (since, as far as I can tell, Windows > has > not support for leap seconds, and WindowsTimeZone certainly doesn't), I don't > see that as being a big deal. > > Regardless, thanks for the info. If nothing else, it does show that Mac OS X > is > doing its own thing with regards to leap seconds. It does make me wonder > though > if they try and use them normally (by the system clock), or if it's just > something that _can_ be used if you use the right functions. As I understand > it, > the Posix standard requires that leap seconds be ignored, so if the OSX > system > clock uses it, then that would be breaking the standard. > > - Jonathan M Davis > _______________________________________________ > phobos mailing list > [email protected] > http://lists.puremagic.com/mailman/listinfo/phobos -- /Jacob Carlborg _______________________________________________ phobos mailing list [email protected] http://lists.puremagic.com/mailman/listinfo/phobos
