diff --git a/docs/ldml/tr35-dates.md b/docs/ldml/tr35-dates.md index 713b8000e88..39cdb3b4046 100644 --- a/docs/ldml/tr35-dates.md +++ b/docs/ldml/tr35-dates.md @@ -1696,6 +1696,8 @@ Note: A generic location format is constructed by a part of time zone ID represe * "Pacific Daylight Time" (long) * "PDT" (short) +**Specific location format:** This format does not have a symbol, but is used in the fallback chain for the _specific non-location format_. Like the _generic location format_ it uses time zone locations, but formats these in a zone-variant aware way, e.g. "France Summer Time". + **Localized GMT format:** A constant, specific offset from GMT (or UTC), which may be in a translated form. There are two styles for this. The first is used when there is an explicit non-zero offset from GMT; this style is specified by the `` element and `` element. The long format always uses 2-digit hours field and minutes field, with optional 2-digit seconds field. The short format is intended for the shortest representation and uses hour fields without leading zero, with optional 2-digit minutes and seconds fields. The digits used for hours, minutes and seconds fields in this format are the locale's default decimal digits: * "GMT+03:30" (long) @@ -1877,15 +1879,19 @@ Some of the examples are drawn from real data, while others are for illustration * "Pacific Time (Canada)" // for the zone Vancouver in the locale en_MX. * "Mountain Time (Phoenix)" * "Pacific Time (Whitehorse)" -5. For the generic location format: - 1. From the TZDB get the country code for the zone, and determine whether there is only one timezone in the country. If there is only one timezone or if the zone id is in the `` list, format the country name with the _regionFormat_, and return it. +5. For the location formats (generic or specific): + 1. Get the _regionFormat_ format according to type (generic, standard, or daylight). + 2. From the TZDB get the country code for the zone, and determine whether there is only one timezone in the country. + 1. If there is only one timezone or if the zone id is in the `` list, continue with short country name, if it exists, otherwise the country name. + 2. Otherwise, continue with the localized name of the exemplar city for the zone. + 3. Format the region format obtained in step 1 with the location obtained in step 2. * Examples: - * Europe/Rome → IT → "Italy Time" // for English - * Asia/Shanghai → CN → "China Time" // Asia/Shanghai is the _primaryZone_ for China - * Africa/Monrovia → LR → "Hora de Liberja" - * America/Havana → CU → "Hora de CU" // if CU is not localized - 2. Otherwise format the exemplar city with the _regionFormat_, and return it. - 1. America/Buenos_Aires → "Buenos Aires Time" + * America/Buenos_Aires → "Buenos Aires Time" // multiple zones in AR + * Asia/Shanghai → "China Time" // Asia/Shanghai is the _primaryZone_ for CN + * Asia/Shanghai → "China Summer Time" // daylight + * Europe/Rome → "Italy Time" // Europe/Rome is the only zone in IT + * Africa/Monrovia → "Hora de Liberja" + * America/Havana → "Hora de CU" // if CU is not localized > **Note:** If a language does require grammatical changes when composing strings, then the _regionFormat_ should either use a neutral format such as "Heure: {0}", or put all exceptional cases in explicitly translated strings. @@ -2264,7 +2270,7 @@ Notes for the table below: The short specific non-location format. Where that is unavailable, falls back to the short localized GMT format ("O"). zzzzPacific Daylight Time The long specific non-location format. - Where that is unavailable, falls back to the long localized GMT format ("OOOO"). + Where that is unavailable, falls back to the specific location format, then the short localized GMT format as the final fallback. ZZ..ZZZ-0800 The ISO8601 basic format with hours, minutes and optional seconds fields.