Chronos is one of the many Smalltalk-related blogs syndicated on Planet Smalltalk
χρόνος

Discussion of the Essence# programming language, and related issues and technologies.

Blog Timezone: America/Los_Angeles [Winter: -0800 hhmm | Summer: -0700 hhmm] 
Your local time:  

2006-03-22

Chronos Time Zone Repository in XML

An XML-encoded version of the Chronos Time Zone Repository is now available from date-time-zone.com. The XML schema is defined by an annotated XSD. The information in the Chronos Time Zone Repository is produced by the Chronos Time Zone Compiler using the Olson Time Zone Database zoneinfo source files.

The Olson Time Zone Database defines the rulesets of over 400 time zones, each identified by a unique key. The rule model of the Chronos Time Zone Repository is based on that of the Olson zoneinfo source files, but extends it with the ability to specify the calendar in which the date of each zone offset transition is specified (currently, the calendar is always the Gregorian calendar, but that may change in the future, since some countries use other calendars to specify annually-recurring zone offset transition dates.)

The Chronos Time Zone Repository also provides the geographic coordinates of the city whose name identifies the time zone (if there is one,) and a default (English) name for about 75 of the most commonly used time zones (based on the name used by Windows.)

The date-time-zone.com site provides links to download the XML version of the Chronos Time Zone Repository (download link: XML version of the Chronos Time Zone Repository) and also the "native to Chronos" version of the Chronos Time Zone Repository (dowload link: native-to-Chronos version of the Chronos Time Zone Repository.)

Chronos itself uses only its own proprietary version of the time zone repository, which is not encoded as XML. The XML-encoded version is intended for the general use of other applications and libraries.

The main advantages of the Chronos Time Zone Repository over other distributions of time zone repositories based on the Olson data are that a) the Chronos rule model preserves the original transition ruleforms based on annually-recurring dates (and the date and time of zone offset transitions is specified in a way that is independent of issues such as leap days and leap seconds,) b) the Chronos ruleset files contain all the information for each time zone--there is no need to cross reference with information from other files, nor to deal with the complex rule macros used in Olson's zoneinfo source files, c) it's available in XML, with syntax governed by a fully-annotated XSD, and d) there's a machine-consumable Atom feed for the announcement of new versions.

Olson publishes a new version of the time zone data about once a month. When that happens, the Chronos Time Zone Compiler is used to generate a new version of the Chronos Time Respository from the new Olson zoneinfo source files, a new version of the Chronos XML Time Zone Repository is then generated, and finally the Atom feed is updated to announce the new version.


No comments: