Cldr.Timezone (Cldr v2.43.0)

View Source

Functions to map between the CLDR short time zone code and the IANA timezone names.

The Unicode locale extension U allows the specification of the time zone requested for the provided locale.

This short timezone codes never change even if the IANA names change over time. Therefore these short codes are always stable between CLDR releases.

Summary

Functions

Returns a {:ok, list} where list is a list of IANA timezone names for a given CLDR short zone code. If no such short code exists then :error is returned.

Returns a list of IANA time zone names for a given CLDR short zone code, or nil.

Returns a mapping of time zone IDs to their known territory.

Returns a mapping of CLDR short zone codes to IANA timezone names.

Returns a mapping of territories to their known IANA timezone names.

Types

short_zone()

@type short_zone() :: String.t()

timezone()

@type timezone() :: %{
  aliases: [String.t(), ...],
  preferred: nil | short_zone(),
  territory: Cldr.Locale.territory_code()
}

Functions

fetch_short_zone(short_zone)

@spec fetch_short_zone(String.t()) :: {:ok, map()} | :error

Returns a {:ok, list} where list is a list of IANA timezone names for a given CLDR short zone code. If no such short code exists then :error is returned.

Example

iex> Cldr.Timezone.fetch_short_zone("ausyd")
{
  :ok,
  %{
    preferred: nil,
    aliases: ["Australia/Sydney", "Australia/ACT", "Australia/Canberra", "Australia/NSW"],
    territory: :AU
  }
}

iex> Cldr.Timezone.fetch_short_zone("nope")
:error

get_short_zone(short_zone, default \\ nil)

@spec get_short_zone(String.t(), String.t() | nil) :: map() | nil

Returns a list of IANA time zone names for a given CLDR short zone code, or nil.

The first time zone name in the list is the canonical time zone name.

Examples

iex> Cldr.Timezone.get_short_zone("ausyd")
%{
  preferred: nil,
  aliases: ["Australia/Sydney", "Australia/ACT", "Australia/Canberra", "Australia/NSW"],
  territory: :AU
}

iex> Cldr.Timezone.get_short_zone("nope")
nil

territories_by_timezone()

Returns a mapping of time zone IDs to their known territory.

A time zone can only belong to one territory in CLDR.

timezones()

@spec timezones() :: %{required(zone_name :: String.t()) => timezone()}

Returns a mapping of CLDR short zone codes to IANA timezone names.

timezones_by_territory()

@spec timezones_by_territory() :: %{
  ID: [timezone(), ...],
  NG: [timezone(), ...],
  MR: [timezone(), ...],
  IL: [timezone(), ...],
  HK: [timezone(), ...],
  LY: [timezone(), ...],
  VA: [timezone(), ...],
  PL: [timezone(), ...],
  MN: [timezone(), ...],
  GE: [timezone(), ...],
  AT: [timezone(), ...],
  TL: [timezone(), ...],
  KP: [timezone(), ...],
  LT: [timezone(), ...],
  ES: [timezone(), ...],
  DK: [timezone(), ...],
  TK: [timezone(), ...],
  SE: [timezone(), ...],
  TH: [timezone(), ...],
  SN: [timezone(), ...],
  RS: [timezone(), ...],
  BT: [timezone(), ...],
  LI: [timezone(), ...],
  BR: [timezone(), ...],
  KY: [timezone(), ...],
  TD: [timezone(), ...],
  LB: [timezone(), ...],
  SI: [timezone(), ...],
  GD: [timezone(), ...],
  PY: [timezone(), ...],
  MD: [timezone(), ...],
  FR: [timezone(), ...],
  PW: [timezone(), ...],
  JM: [timezone(), ...],
  KZ: [timezone(), ...],
  IT: [timezone(), ...],
  MY: [timezone(), ...],
  MK: [timezone(), ...],
  BH: [timezone(), ...],
  LU: [timezone(), ...],
  UM: [timezone(), ...],
  MO: [timezone(), ...],
  AG: [timezone(), ...],
  SL: [timezone(), ...],
  ZM: [timezone(), ...],
  MZ: [timezone(), ...],
  PM: [timezone(), ...],
  GH: [timezone(), ...],
  BI: [timezone(), ...],
  JO: [timezone(), ...],
  AU: [timezone(), ...],
  BJ: [timezone(), ...],
  SB: [timezone(), ...],
  AF: [timezone(), ...],
  BY: [timezone(), ...],
  CG: [timezone(), ...],
  GG: [timezone(), ...],
  KR: [timezone(), ...],
  PT: [timezone(), ...],
  GT: [timezone(), ...],
  BO: [timezone(), ...],
  CL: [timezone(), ...],
  CR: [timezone(), ...],
  BF: [timezone(), ...],
  PE: [timezone(), ...],
  EG: [timezone(), ...],
  SM: [timezone(), ...],
  NZ: [timezone(), ...],
  SD: [timezone(), ...],
  MV: [timezone(), ...],
  MC: [timezone(), ...],
  BQ: [timezone(), ...],
  RU: [timezone(), ...],
  EC: [timezone(), ...],
  CO: [timezone(), ...],
  AR: [timezone(), ...],
  BL: [timezone(), ...],
  CM: [timezone(), ...],
  CC: [timezone(), ...],
  VN: [timezone(), ...],
  MW: [timezone(), ...],
  BM: [timezone(), ...],
  VU: [timezone(), ...],
  BG: [timezone(), ...],
  SG: [timezone(), ...],
  SX: [timezone(), ...],
  PK: [timezone(), ...],
  TF: [timezone(), ...],
  AW: [timezone(), ...],
  OM: [timezone(), ...],
  AZ: [timezone(), ...],
  ML: [timezone(), ...],
  CZ: [timezone(), ...],
  DO: [timezone(), ...],
  UG: [timezone(), ...],
  KG: [timezone(), ...],
  EH: [timezone(), ...],
  WF: [timezone(), ...],
  IQ: [timezone(), ...],
  VC: [timezone(), ...],
  AD: [timezone(), ...],
  IO: [timezone(), ...],
  KH: [timezone(), ...],
  BE: [timezone(), ...],
  GL: [timezone(), ...],
  KW: [timezone(), ...],
  GB: [timezone(), ...],
  LV: [timezone(), ...],
  LR: [timezone(), ...],
  CI: [timezone(), ...],
  VI: [timezone(), ...],
  WS: [timezone(), ...],
  GP: [timezone(), ...],
  HN: [timezone(), ...],
  FO: [timezone(), ...],
  CY: [timezone(), ...],
  NF: [timezone(), ...],
  SY: [timezone(), ...],
  EE: [timezone(), ...],
  TC: [timezone(), ...],
  ET: [timezone(), ...],
  AQ: [timezone(), ...],
  TO: [timezone(), ...],
  BN: [timezone(), ...],
  IM: [timezone(), ...],
  MS: [timezone(), ...],
  MH: [timezone(), ...],
  TN: [timezone(), ...],
  GW: [timezone(), ...],
  HU: [timezone(), ...],
  MT: [timezone(), ...],
  CN: [timezone(), ...],
  VE: [timezone(), ...],
  NA: [timezone(), ...],
  DZ: [timezone(), ...],
  AI: [timezone(), ...],
  MU: [timezone(), ...],
  NL: [timezone(), ...],
  TV: [timezone(), ...],
  NP: [timezone(), ...],
  SS: [timezone(), ...],
  PR: [timezone(), ...],
  LC: [timezone(), ...],
  DE: [timezone(), ...],
  AX: [timezone(), ...],
  ST: [timezone(), ...],
  PN: [timezone(), ...],
  MP: [timezone(), ...],
  GY: [timezone(), ...],
  SO: [timezone(), ...],
  JE: [timezone(), ...],
  RW: [timezone(), ...],
  CW: [timezone(), ...],
  IE: [timezone(), ...],
  GA: [timezone(), ...],
  BB: [timezone(), ...],
  TM: [timezone(), ...],
  QA: [timezone(), ...],
  GU: [timezone(), ...],
  ZW: [timezone(), ...],
  TZ: [timezone(), ...],
  UZ: [timezone(), ...],
  SH: [timezone(), ...],
  YT: [timezone(), ...],
  SC: [timezone(), ...],
  MG: [timezone(), ...],
  ZA: [timezone(), ...],
  GM: [timezone(), ...],
  RO: [timezone(), ...],
  SA: [timezone(), ...],
  SR: [timezone(), ...],
  TR: [timezone(), ...],
  FJ: [timezone(), ...],
  BW: [timezone(), ...],
  MF: [timezone(), ...],
  ME: [timezone(), ...],
  AM: [timezone(), ...],
  LS: [timezone(), ...],
  LK: [timezone(), ...],
  GN: [timezone(), ...],
  LA: [timezone(), ...],
  PA: [timezone(), ...],
  PG: [timezone(), ...],
  YE: [timezone(), ...],
  AS: [timezone(), ...],
  NU: [timezone(), ...],
  BZ: [timezone(), ...],
  IR: [timezone(), ...],
  GR: [timezone(), ...],
  TJ: [timezone(), ...],
  NI: [timezone(), ...],
  UA: [timezone(), ...],
  NR: [timezone(), ...],
  CX: [timezone(), ...],
  US: [timezone(), ...],
  BS: [timezone(), ...],
  FI: [timezone(), ...],
  PF: [timezone(), ...],
  SJ: [timezone(), ...],
  RE: [timezone(), ...],
  IN: [timezone(), ...],
  HT: [timezone(), ...],
  GS: [timezone(), ...],
  KI: [timezone(), ...],
  MA: [timezone(), ...],
  PS: [timezone(), ...],
  NE: [timezone(), ...],
  CD: [timezone(), ...],
  IS: [timezone(), ...],
  BD: [timezone(), ...],
  GQ: [timezone(), ...],
  DM: [timezone(), ...],
  CF: [timezone(), ...],
  KM: [timezone(), ...],
  UY: [timezone(), ...],
  BA: [timezone(), ...],
  CK: [timezone(), ...],
  TW: [timezone(), ...],
  GI: [timezone(), ...],
  KE: [timezone(), ...],
  CH: [timezone(), ...],
  SK: [timezone(), ...],
  MQ: [timezone(), ...],
  SV: [timezone(), ...],
  NC: [timezone(), ...],
  VG: [timezone(), ...],
  JP: [timezone(), ...],
  TT: [timezone(), ...],
  AL: [timezone(), ...],
  HR: [timezone(), ...],
  PH: [timezone(), ...],
  CU: [timezone(), ...],
  CA: [timezone(), ...],
  KN: [timezone(), ...],
  NO: [timezone(), ...],
  CV: [timezone(), ...],
  FK: [timezone(), ...],
  FM: [timezone(), ...],
  MM: [timezone(), ...],
  DJ: [timezone(), ...],
  GF: [timezone(), ...],
  MX: [timezone(), ...],
  ER: [timezone(), ...],
  AO: [timezone(), ...],
  SZ: [timezone(), ...],
  TG: [timezone(), ...],
  AE: [timezone(), ...]
}

Returns a mapping of territories to their known IANA timezone names.