[tz] OpenJDK/CLDR/ICU/Joda issues with Ireland change

Mark Davis ☕️ mark at macchiato.com
Wed Jan 24 22:03:20 UTC 2018


CLDR doesn't formally have offsets. What it has is data like:

en.xml
<metazone type="America_Eastern">
<long>
<generic>Eastern Time</generic>
<standard>Eastern Standard Time</standard>
<daylight>Eastern Daylight Time</daylight>
</long>
<short>
<generic>ET</generic>
<standard>EST</standard>
<daylight>EDT</daylight>
</short>
</metazone>

de.xml
<metazone type="America_Eastern">
<long>
<generic>Nordamerikanische Ostküstenzeit</generic>
<standard>Nordamerikanische Ostküsten-Normalzeit</standard>
<daylight>Nordamerikanische Ostküsten-Sommerzeit</daylight>
</long>
</metazone>

(Note that abbreviations are only included if they'd be commonly
recognized.)

Each metazones represent a set names that can be used across multiple TZ
ids. There can be overrides by TZ id, such as the current:

<zone type="Europe/London">
<long>
<daylight>British Summer Time</daylight>
</long>
</zone>
<zone type="Europe/Dublin">
<long>
<daylight>Irish Standard Time</daylight>
</long>
</zone>

Both of these inherit

<standard>Greenwich Mean Time</standard>

So a current implementation, with no changes, will get for Europe/Dublin:

<standard>Greenwich Mean Time</standard>
<daylight>Irish Standard Time</daylight>


Different clients will use the data in different ways. The source for ICU,
for example, reformats to a key-value map:

        "meta:America_Eastern"{
            ld{"Eastern Daylight Time"}
            lg{"Eastern Time"}
            ls{"Eastern Standard Time"}
            sd{"EDT"}
            sg{"ET"}
            ss{"EST"}
        }

The normal interpretation of "standard" and "daylight" keywords or
equivalents is that:

standard_offset = 0
daylight_offset ≠ 0

Mark

On Wed, Jan 24, 2018 at 10:44 AM, Guy Harris <guy at alum.mit.edu> wrote:

> On Jan 23, 2018, at 11:55 AM, Yoshito Umaoka <yoshito_umaoka at us.ibm.com>
> wrote:
>
> > CLDR does not determine offsets.
>
> Stephen Colebourne claimed that CLDR determines whether to use the
> standard or daylight time strings by comparing the "raw offset" (presumably
> meaning "the offset during standard time") with the "actual offset"
> (presumably meaning "the offset during daylight savings time").
>
> Therefore, it *must* know those offsets, otherwise it cannot compare them.
>
> So let me rephrase the question:
>
>         How does CLDR obtain those offsets?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mm.icann.org/pipermail/tz/attachments/20180124/aa509227/attachment.html>


More information about the tz mailing list