All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.squarespace.cldr.dates._CalendarFormatter_am Maven / Gradle / Ivy

//
//
// AUTO-GENERATED CLASS - DO NOT EDIT
//
//
package com.squarespace.cldr.dates;

import com.squarespace.cldr.CLDR;
import java.lang.Override;
import java.lang.String;
import java.lang.StringBuilder;
import java.time.ZonedDateTime;
import java.util.HashMap;

/**
 * Locale "am"
 * See http://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table
 */
public class _CalendarFormatter_am extends CalendarFormatterBase {
  public _CalendarFormatter_am() {
    this.bundleId = CLDR.Locale.am;
    this.firstDay = 1;
    this.minDays = 1;
    this.eras = new FieldVariants(
          new String[] {"ዓ/ዓ", "ዓ/ም"}, 
          new String[] {"ዓ/ዓ", "ዓ/ም"}, 
          new String[] {}, 
          new String[] {"ዓመተ ዓለም", "ዓመተ ምሕረት"});
    this.quartersFormat = new FieldVariants(
          new String[] {"ሩብ1", "ሩብ2", "ሩብ3", "ሩብ4"}, 
          new String[] {"1", "2", "3", "4"}, 
          new String[] {}, 
          new String[] {"1ኛው ሩብ", "2ኛው ሩብ", "3ኛው ሩብ", "4ኛው ሩብ"});
    this.quartersStandalone = new FieldVariants(
          new String[] {"ሩብ1", "ሩብ2", "ሩብ3", "ሩብ4"}, 
          new String[] {"1", "2", "3", "4"}, 
          new String[] {}, 
          new String[] {"1ኛው ሩብ", "2ኛው ሩብ", "3ኛው ሩብ", "4ኛው ሩብ"});
    this.monthsFormat = new FieldVariants(
          new String[] {"ጃንዩ", "ፌብሩ", "ማርች", "ኤፕሪ", "ሜይ", "ጁን", "ጁላይ", "ኦገስ", "ሴፕቴ", "ኦክቶ", "ኖቬም", "ዲሴም"}, 
          new String[] {"ጃ", "ፌ", "ማ", "ኤ", "ሜ", "ጁ", "ጁ", "ኦ", "ሴ", "ኦ", "ኖ", "ዲ"}, 
          new String[] {}, 
          new String[] {"ጃንዩወሪ", "ፌብሩወሪ", "ማርች", "ኤፕሪል", "ሜይ", "ጁን", "ጁላይ", "ኦገስት", "ሴፕቴምበር", "ኦክቶበር", "ኖቬምበር", "ዲሴምበር"});
    this.monthsStandalone = new FieldVariants(
          new String[] {"ጃንዩ", "ፌብሩ", "ማርች", "ኤፕሪ", "ሜይ", "ጁን", "ጁላይ", "ኦገስ", "ሴፕቴ", "ኦክቶ", "ኖቬም", "ዲሴም"}, 
          new String[] {"ጃ", "ፌ", "ማ", "ኤ", "ሜ", "ጁ", "ጁ", "ኦ", "ሴ", "ኦ", "ኖ", "ዲ"}, 
          new String[] {}, 
          new String[] {"ጃንዩወሪ", "ፌብሩወሪ", "ማርች", "ኤፕሪል", "ሜይ", "ጁን", "ጁላይ", "ኦገስት", "ሴፕቴምበር", "ኦክቶበር", "ኖቬምበር", "ዲሴምበር"});
    this.weekdaysFormat = new FieldVariants(
          new String[] {"እሑድ", "ሰኞ", "ማክሰ", "ረቡዕ", "ሐሙስ", "ዓርብ", "ቅዳሜ"}, 
          new String[] {"እ", "ሰ", "ማ", "ረ", "ሐ", "ዓ", "ቅ"}, 
          new String[] {"እ", "ሰ", "ማ", "ረ", "ሐ", "ዓ", "ቅ"}, 
          new String[] {"እሑድ", "ሰኞ", "ማክሰኞ", "ረቡዕ", "ሐሙስ", "ዓርብ", "ቅዳሜ"});
    this.weekdaysStandalone = new FieldVariants(
          new String[] {"እሑድ", "ሰኞ", "ማክሰ", "ረቡዕ", "ሐሙስ", "ዓርብ", "ቅዳሜ"}, 
          new String[] {"እ", "ሰ", "ማ", "ረ", "ሐ", "ዓ", "ቅ"}, 
          new String[] {"እ", "ሰ", "ማ", "ረ", "ሐ", "ዓ", "ቅ"}, 
          new String[] {"እሑድ", "ሰኞ", "ማክሰኞ", "ረቡዕ", "ሐሙስ", "ዓርብ", "ቅዳሜ"});
    this.dayPeriodsFormat = new FieldVariants(
          new String[] {"ጥዋት", "ከሰዓት"}, 
          new String[] {"ጠ", "ከ"}, 
          new String[] {}, 
          new String[] {"ጥዋት", "ከሰዓት"});
    this.dayPeriodsStandalone = new FieldVariants(
          new String[] {"ጥዋት", "ከሰዓት"}, 
          new String[] {"ጠ", "ከ"}, 
          new String[] {}, 
          new String[] {"ጥዋት", "ከሰዓት"});
    this.exemplarCities = new HashMap() { {
      put("America/Adak", "አዳክ");
      put("America/Anchorage", "አንኮራጅ");
      put("America/Anguilla", "አንጉይላ");
      put("America/Antigua", "አንቲጓ");
      put("America/Araguaina", "አራጉየና");
      put("America/Argentina/Rio_Gallegos", "ሪዮ ጋሌጎስ");
      put("America/Argentina/San_Juan", "ሳን ጁአን");
      put("America/Argentina/Ushuaia", "ኡሹአኢ");
      put("America/Argentina/La_Rioja", "ላ ሪኦጃ");
      put("America/Argentina/San_Luis", "ሳን ሊውስ");
      put("America/Argentina/Salta", "ሳልታ");
      put("America/Argentina/Tucuman", "ቱኩማን");
      put("America/Aruba", "አሩባ");
      put("America/Asuncion", "አሱንሲዮን");
      put("America/Bahia", "ባሂአ");
      put("America/Bahia_Banderas", "ባሂያ ባንደራስ");
      put("America/Barbados", "ባርቤዶስ");
      put("America/Belem", "ቤለም");
      put("America/Belize", "ቤሊዝ");
      put("America/Blanc-Sablon", "ብላንክ- ሳብሎን");
      put("America/Boa_Vista", "ቦአ ቪስታ");
      put("America/Bogota", "ቦጎታ");
      put("America/Boise", "ቦይዝ");
      put("America/Buenos_Aires", "ቦነስ አይረስ");
      put("America/Cambridge_Bay", "ካምብሪጅ ቤይ");
      put("America/Campo_Grande", "ካምፖ ግራንዴ");
      put("America/Cancun", "ካንኩን");
      put("America/Caracas", "ካራካስ");
      put("America/Catamarca", "ካታማርካ");
      put("America/Cayenne", "ካይንኤ");
      put("America/Cayman", "ካይማን");
      put("America/Chicago", "ቺካጎ");
      put("America/Chihuahua", "ቺሁዋውአ");
      put("America/Coral_Harbour", "አቲኮካን");
      put("America/Cordoba", "ኮርዶባ");
      put("America/Costa_Rica", "ኮስታሪካ");
      put("America/Creston", "ክረስተን");
      put("America/Cuiaba", "ኩየአባ");
      put("America/Curacao", "ኩራሳዎ");
      put("America/Danmarkshavn", "ዳንማርክሻቭን");
      put("America/Dawson", "ዳውሰን");
      put("America/Dawson_Creek", "ዳውሰን ክሬክ");
      put("America/Denver", "ዴንቨር");
      put("America/Detroit", "ዲትሮይት");
      put("America/Dominica", "ዶሜኒካ");
      put("America/Edmonton", "ኤድመንተን");
      put("America/Eirunepe", "ኢሩኔፕ");
      put("America/El_Salvador", "ኤልሳልቫዶር");
      put("America/Fort_Nelson", "ፎርት ኔልሰን");
      put("America/Fortaleza", "ፎርታሌዛ");
      put("America/Glace_Bay", "ግሌስ ቤይ");
      put("America/Godthab", "ጋድታብ");
      put("America/Goose_Bay", "ጉዝ ቤይ");
      put("America/Grand_Turk", "ግራንድ ተርክ");
      put("America/Grenada", "ግሬናዳ");
      put("America/Guadeloupe", "ጕዳሉፕ");
      put("America/Guatemala", "ጓቲማላ");
      put("America/Guayaquil", "ጉያኩይል");
      put("America/Guyana", "ጉያና");
      put("America/Halifax", "ሃሊፋክስ");
      put("America/Havana", "ሃቫና");
      put("America/Hermosillo", "ኸርሞዚሎ");
      put("America/Indiana/Vincennes", "ቪንቼንስ, ኢንዲያና");
      put("America/Indiana/Petersburg", "ፒተርስበርግ, ኢንዲያና");
      put("America/Indiana/Tell_City", "ቴል ከተማ, ኢንዲያና");
      put("America/Indiana/Knox", "ኖክስ, ኢንዲያና");
      put("America/Indiana/Winamac", "ዊናማክ, ኢንዲያና");
      put("America/Indiana/Marengo", "ማሬንጎ, ኢንዲያና");
      put("America/Indiana/Vevay", "ቪቫይ, ኢንዲያና");
      put("America/Indianapolis", "ኢንዲያናፖሊስ");
      put("America/Inuvik", "ኢኑቪክ");
      put("America/Iqaluit", "ኢኳሊውት");
      put("America/Jamaica", "ጃማይካ");
      put("America/Jujuy", "ጁጁይ");
      put("America/Juneau", "ጁኒዩ");
      put("America/Kentucky/Monticello", "ሞንቲሴሎ, ኪንታኪ");
      put("America/Kralendijk", "ክራለንዲይክ");
      put("America/La_Paz", "ላ ፓዝ");
      put("America/Lima", "ሊማ");
      put("America/Los_Angeles", "ሎስ አንጀለስ");
      put("America/Louisville", "ሊውስቪል");
      put("America/Lower_Princes", "የታችኛው ልዑል ሩብ");
      put("America/Maceio", "ሜሲኦ");
      put("America/Managua", "ማናጉአ");
      put("America/Manaus", "ማናኡስ");
      put("America/Marigot", "ማርጎት");
      put("America/Martinique", "ማርቲኒክ");
      put("America/Matamoros", "ማታሞሮስ");
      put("America/Mazatlan", "ማዛትላን");
      put("America/Mendoza", "ሜንዶዛ");
      put("America/Menominee", "ሜኖሚኒ");
      put("America/Merida", "ሜሪዳ");
      put("America/Metlakatla", "መትላካትላ");
      put("America/Mexico_City", "ሜክሲኮ ከተማ");
      put("America/Miquelon", "ሚኮውሎን");
      put("America/Moncton", "ሞንክቶን");
      put("America/Monterrey", "ሞንተርሬይ");
      put("America/Montevideo", "ሞንቴቪድዮ");
      put("America/Montserrat", "ሞንትሴራት");
      put("America/Nassau", "ናሳው");
      put("America/New_York", "ኒውዮርክ");
      put("America/Nipigon", "ኒፒጎን");
      put("America/Nome", "ኖሜ");
      put("America/Noronha", "ኖሮኛ");
      put("America/North_Dakota/Beulah", "ቤኡላህ, ሰሜን ዳኮታ");
      put("America/North_Dakota/New_Salem", "አዲስ ሳሌም, ሰሜን ዳኮታ");
      put("America/North_Dakota/Center", "መካከለኛ, ሰሜን ዳኮታ");
      put("America/Ojinaga", "ኦዪናጋ");
      put("America/Panama", "ፓናማ");
      put("America/Pangnirtung", "ፓንግኒርተንግ");
      put("America/Paramaribo", "ፓራማሪቦ");
      put("America/Phoenix", "ፊኒክስ");
      put("America/Port-au-Prince", "ፖርት ኦ ፕሪንስ");
      put("America/Port_of_Spain", "የእስፔን ወደብ");
      put("America/Porto_Velho", "ፔትሮ ቬልሆ");
      put("America/Puerto_Rico", "ፖርቶሪኮ");
      put("America/Rainy_River", "ሬኒ ሪቨር");
      put("America/Rankin_Inlet", "ራንኪን ኢንሌት");
      put("America/Recife", "ፓሲፍ");
      put("America/Regina", "ረጂና");
      put("America/Resolute", "ሪዞሊዩት");
      put("America/Rio_Branco", "ሪዮ ብራንኮ");
      put("America/Santa_Isabel", "ሳንታ ኢዛቤል");
      put("America/Santarem", "ሳንታሬም");
      put("America/Santiago", "ሳንቲያጎ");
      put("America/Santo_Domingo", "ሳንቶ ዶሚንጎ");
      put("America/Sao_Paulo", "ሳኦ ፖሎ");
      put("America/Scoresbysund", "ስኮርስባይሰንድ");
      put("America/Sitka", "ሲትካ");
      put("America/St_Barthelemy", "ቅድስት ቤርተሎሜ");
      put("America/St_Johns", "ቅዱስ ዮሐንስ");
      put("America/St_Kitts", "ቅዱስ ኪትስ");
      put("America/St_Lucia", "ቅድስት ሉሲያ");
      put("America/St_Thomas", "ቅዱስ ቶማስ");
      put("America/St_Vincent", "ቅዱስ ቪንሰንት");
      put("America/Swift_Current", "የሐዋላ ገንዘብ");
      put("America/Tegucigalpa", "ቴጉሲጋልፓ");
      put("America/Thule", "ቱሌ");
      put("America/Thunder_Bay", "ተንደር ቤይ");
      put("America/Tijuana", "ቲጁአና");
      put("America/Toronto", "ቶሮንቶ");
      put("America/Tortola", "ቶርቶላ");
      put("America/Vancouver", "ቫንኮቨር");
      put("America/Whitehorse", "ኋይትሆርስ");
      put("America/Winnipeg", "ዊኒፔግ");
      put("America/Yakutat", "ያኩታት");
      put("America/Yellowknife", "የሎውናይፍ");
      put("Atlantic/Azores", "አዞረስ");
      put("Atlantic/Bermuda", "ቤርሙዳ");
      put("Atlantic/Canary", "ካናሪ");
      put("Atlantic/Cape_Verde", "ኬፕ ቬርደ");
      put("Atlantic/Faeroe", "ፋሮእ");
      put("Atlantic/Madeira", "ማዴራ");
      put("Atlantic/Reykjavik", "ሬይክጃቪክ");
      put("Atlantic/South_Georgia", "ደቡብ ጆርጂያ");
      put("Atlantic/St_Helena", "ቅድስት ሄለና");
      put("Atlantic/Stanley", "ስታንሌይ");
      put("Europe/Amsterdam", "አምስተርዳም");
      put("Europe/Andorra", "አንዶራ");
      put("Europe/Astrakhan", "አስትራክሃን");
      put("Europe/Athens", "አቴንስ");
      put("Europe/Belgrade", "ቤልግሬድ");
      put("Europe/Berlin", "በርሊን");
      put("Europe/Bratislava", "ብራቲስላቫ");
      put("Europe/Brussels", "ብራሰልስ");
      put("Europe/Bucharest", "ቡካሬስት");
      put("Europe/Budapest", "ቡዳፔስት");
      put("Europe/Busingen", "ቡሲንገን");
      put("Europe/Chisinau", "ቺስናኡ");
      put("Europe/Copenhagen", "ኮፐንሃገን");
      put("Europe/Dublin", "ደብሊን");
      put("Europe/Gibraltar", "ጂብራልታር");
      put("Europe/Guernsey", "ጉርነሲ");
      put("Europe/Helsinki", "ሄልሲንኪ");
      put("Europe/Isle_of_Man", "አይስል ኦፍ ማን");
      put("Europe/Istanbul", "ኢስታንቡል");
      put("Europe/Jersey", "ጀርሲ");
      put("Europe/Kaliningrad", "ካሊኒንግራድ");
      put("Europe/Kiev", "ኪየቭ");
      put("Europe/Kirov", "ኪሮቭ");
      put("Europe/Lisbon", "ሊዝበን");
      put("Europe/Ljubljana", "ልጁብልጃና");
      put("Europe/London", "ለንደን");
      put("Europe/Luxembourg", "ሉክሰምበርግ");
      put("Europe/Madrid", "ማድሪድ");
      put("Europe/Malta", "ማልታ");
      put("Europe/Mariehamn", "ሜሪሃምን");
      put("Europe/Minsk", "ሚንስክ");
      put("Europe/Monaco", "ሞናኮ");
      put("Europe/Moscow", "ሞስኮ");
      put("Europe/Oslo", "ኦስሎ");
      put("Europe/Paris", "ፓሪስ");
      put("Europe/Podgorica", "ፖድጎሪካ");
      put("Europe/Prague", "ፕራግ");
      put("Europe/Riga", "ሪጋ");
      put("Europe/Rome", "ሮም");
      put("Europe/Samara", "ሳማራ");
      put("Europe/San_Marino", "ሳን ማሪኖ");
      put("Europe/Sarajevo", "ሳሪየቮ");
      put("Europe/Simferopol", "ሲምፈሮፖል");
      put("Europe/Skopje", "ስኮፕጄ");
      put("Europe/Sofia", "ሶፊያ");
      put("Europe/Stockholm", "ስቶክሆልም");
      put("Europe/Tallinn", "ታሊን");
      put("Europe/Tirane", "ቴራን");
      put("Europe/Ulyanovsk", "ኡልያኖቭስክ");
      put("Europe/Uzhgorod", "ኡዝጎሮድ");
      put("Europe/Vaduz", "ቫዱዝ");
      put("Europe/Vatican", "ቫቲካን");
      put("Europe/Vienna", "ቪየና");
      put("Europe/Vilnius", "ቪሊነስ");
      put("Europe/Volgograd", "ቮልጎራድ");
      put("Europe/Warsaw", "ዋርሶው");
      put("Europe/Zagreb", "ዛግሬብ");
      put("Europe/Zaporozhye", "ዛፖሮዚይ");
      put("Europe/Zurich", "ዙሪክ");
      put("Africa/Abidjan", "አቢጃን");
      put("Africa/Accra", "አክራ");
      put("Africa/Addis_Ababa", "አዲስ አበባ");
      put("Africa/Algiers", "አልጀርስ");
      put("Africa/Asmera", "አስመራ");
      put("Africa/Bamako", "ባማኮ");
      put("Africa/Bangui", "ባንጉኢ");
      put("Africa/Banjul", "ባንጁል");
      put("Africa/Bissau", "ቢሳኦ");
      put("Africa/Blantyre", "ብላንታየር");
      put("Africa/Brazzaville", "ብራዛቪል");
      put("Africa/Bujumbura", "ቡጁምብራ");
      put("Africa/Cairo", "ካይሮ");
      put("Africa/Casablanca", "ካዛብላንካ");
      put("Africa/Ceuta", "ሲኡታ");
      put("Africa/Conakry", "ኮናክሬ");
      put("Africa/Dakar", "ዳካር");
      put("Africa/Dar_es_Salaam", "ዳሬ ሰላም");
      put("Africa/Djibouti", "ጅቡቲ");
      put("Africa/Douala", "ዱአላ");
      put("Africa/El_Aaiun", "ኤል አዩአን");
      put("Africa/Freetown", "ፍሪታውን");
      put("Africa/Gaborone", "ጋቦሮን");
      put("Africa/Harare", "ሃራሬ");
      put("Africa/Johannesburg", "ጆሃንስበርግ");
      put("Africa/Juba", "ጁባ");
      put("Africa/Kampala", "ካምፓላ");
      put("Africa/Khartoum", "ካርቱም");
      put("Africa/Kigali", "ኪጋሊ");
      put("Africa/Kinshasa", "ኪንሳሻ");
      put("Africa/Lagos", "ሌጎስ");
      put("Africa/Libreville", "ሊበርቪል");
      put("Africa/Lome", "ሎሜ");
      put("Africa/Luanda", "ሉአንዳ");
      put("Africa/Lubumbashi", "ሉቡምባሺ");
      put("Africa/Lusaka", "ሉሳካ");
      put("Africa/Malabo", "ማሌቦ");
      put("Africa/Maputo", "ማፑቱ");
      put("Africa/Maseru", "ማሴሩ");
      put("Africa/Mbabane", "ምባባኔ");
      put("Africa/Mogadishu", "ሞቃዲሹ");
      put("Africa/Monrovia", "ሞንሮቪያ");
      put("Africa/Nairobi", "ናይሮቢ");
      put("Africa/Ndjamena", "ንጃሜና");
      put("Africa/Niamey", "ኒያሜይ");
      put("Africa/Nouakchott", "ኑአክቾት");
      put("Africa/Ouagadougou", "ኡጋዱጉ");
      put("Africa/Porto-Novo", "ፖርቶ - ኖቮ");
      put("Africa/Sao_Tome", "ሳኦ ቶሜ");
      put("Africa/Tripoli", "ትሪፖሊ");
      put("Africa/Tunis", "ቱኒዝ");
      put("Africa/Windhoek", "ዊንድሆክ");
      put("Asia/Aden", "ኤደን");
      put("Asia/Almaty", "አልማትይ");
      put("Asia/Amman", "አማን");
      put("Asia/Anadyr", "አናድይር");
      put("Asia/Aqtau", "አኩታኡ");
      put("Asia/Aqtobe", "አኩቶቤ");
      put("Asia/Ashgabat", "አሽጋባት");
      put("Asia/Baghdad", "ባግዳድ");
      put("Asia/Bahrain", "ባህሬን");
      put("Asia/Baku", "ባኩ");
      put("Asia/Bangkok", "ባንኮክ");
      put("Asia/Barnaul", "ባርናኡል");
      put("Asia/Beirut", "ቤሩት");
      put("Asia/Bishkek", "ቢሽኬክ");
      put("Asia/Brunei", "ብሩናይ");
      put("Asia/Calcutta", "ኮልካታ");
      put("Asia/Chita", "ቺታ");
      put("Asia/Choibalsan", "ቾይባልሳን");
      put("Asia/Colombo", "ኮሎምቦ");
      put("Asia/Damascus", "ደማስቆ");
      put("Asia/Dhaka", "ዳካ");
      put("Asia/Dili", "ዲሊ");
      put("Asia/Dubai", "ዱባይ");
      put("Asia/Dushanbe", "ደሻንቤ");
      put("Asia/Gaza", "ጋዛ");
      put("Asia/Hebron", "ኬብሮን");
      put("Asia/Hong_Kong", "ሆንግ ኮንግ");
      put("Asia/Hovd", "ሆቭድ");
      put("Asia/Irkutsk", "ኢርኩትስክ");
      put("Asia/Jakarta", "ጃካርታ");
      put("Asia/Jayapura", "ጃያፑራ");
      put("Asia/Jerusalem", "እየሩሳሌም");
      put("Asia/Kabul", "ካቡል");
      put("Asia/Kamchatka", "ካምቻትካ");
      put("Asia/Karachi", "ካራቺ");
      put("Asia/Katmandu", "ካትማንዱ");
      put("Asia/Khandyga", "ካንዲጋ");
      put("Asia/Krasnoyarsk", "ክራስኖያርስክ");
      put("Asia/Kuala_Lumpur", "ኩዋላ ላምፑር");
      put("Asia/Kuching", "ኩቺንግ");
      put("Asia/Kuwait", "ኩዌት");
      put("Asia/Macau", "ማካኡ");
      put("Asia/Magadan", "ማጋዳን");
      put("Asia/Makassar", "ማካሳር");
      put("Asia/Manila", "ማኒላ");
      put("Asia/Muscat", "ሙስካት");
      put("Asia/Nicosia", "ኒኮሲአ");
      put("Asia/Novokuznetsk", "ኖቮኩትዝኔክ");
      put("Asia/Novosibirsk", "ኖቮሲቢሪስክ");
      put("Asia/Omsk", "ኦምስክ");
      put("Asia/Oral", "ኦራል");
      put("Asia/Phnom_Penh", "ፍኖም ፔንህ");
      put("Asia/Pontianak", "ፖንቲአናክ");
      put("Asia/Pyongyang", "ፕዮንግያንግ");
      put("Asia/Qatar", "ኳታር");
      put("Asia/Qyzylorda", "ኩይዚሎርዳ");
      put("Asia/Rangoon", "ራንጉን");
      put("Asia/Riyadh", "ሪያድ");
      put("Asia/Saigon", "ሆ ቺ ሚንህ ከተማ");
      put("Asia/Sakhalin", "ሳክሃሊን");
      put("Asia/Samarkand", "ሳማርካንድ");
      put("Asia/Seoul", "ሴኦል");
      put("Asia/Shanghai", "ሸንጋይ");
      put("Asia/Singapore", "ሲንጋፖር");
      put("Asia/Srednekolymsk", "ስሬድኔስኮልምስክ");
      put("Asia/Taipei", "ታይፓይ");
      put("Asia/Tashkent", "ታሽኬንት");
      put("Asia/Tbilisi", "ትብሊሲ");
      put("Asia/Tehran", "ቴህራን");
      put("Asia/Thimphu", "ቲምፉ");
      put("Asia/Tokyo", "ቶኪዮ");
      put("Asia/Tomsk", "ቶምስክ");
      put("Asia/Ulaanbaatar", "ኡላአንባአታር");
      put("Asia/Urumqi", "ኡሩምኪ");
      put("Asia/Ust-Nera", "ኡስት-ኔራ");
      put("Asia/Vientiane", "ቬንቲአን");
      put("Asia/Vladivostok", "ቭላዲቮስቶክ");
      put("Asia/Yakutsk", "ያኩትስክ");
      put("Asia/Yekaterinburg", "የካተሪንበርግ");
      put("Asia/Yerevan", "ይሬቫን");
      put("Indian/Antananarivo", "አንታናናሪቮ");
      put("Indian/Chagos", "ቻጎስ");
      put("Indian/Christmas", "ገና");
      put("Indian/Cocos", "ኮኮስ");
      put("Indian/Comoro", "ኮሞሮ");
      put("Indian/Kerguelen", "ኬርጉለን");
      put("Indian/Mahe", "ማሄ");
      put("Indian/Maldives", "ማልዲቨ");
      put("Indian/Mauritius", "ሞሪሽየስ");
      put("Indian/Mayotte", "ማዮቴ");
      put("Indian/Reunion", "ሬዩኒየን");
      put("Australia/Adelaide", "አዴሌእድ");
      put("Australia/Brisbane", "ብሪስቤን");
      put("Australia/Broken_Hill", "ብሮክን ሂል");
      put("Australia/Currie", "ከሪ");
      put("Australia/Darwin", "ዳርዊን");
      put("Australia/Eucla", "ኡክላ");
      put("Australia/Hobart", "ሆባርት");
      put("Australia/Lindeman", "ሊንድማን");
      put("Australia/Lord_Howe", "ሎርድ ሆዊ");
      put("Australia/Melbourne", "ሜልቦርን");
      put("Australia/Perth", "ፐርዝ");
      put("Australia/Sydney", "ሲድኒ");
      put("Pacific/Apia", "አፒአ");
      put("Pacific/Auckland", "ኦክላንድ");
      put("Pacific/Bougainville", "ቦጌይንቪል");
      put("Pacific/Chatham", "ቻታም");
      put("Pacific/Easter", "ፋሲካ");
      put("Pacific/Efate", "ኢፋቴ");
      put("Pacific/Enderbury", "ኢንደርበሪ");
      put("Pacific/Fakaofo", "ፋካኦፎ");
      put("Pacific/Fiji", "ፊጂ");
      put("Pacific/Funafuti", "ፈናፉቲ");
      put("Pacific/Galapagos", "ጋላፓጎስ");
      put("Pacific/Gambier", "ጋምቢየር");
      put("Pacific/Guadalcanal", "ጉዋዳልካናል");
      put("Pacific/Guam", "ጉአም");
      put("Pacific/Honolulu", "ሆኖሉሉ");
      put("Pacific/Johnston", "ጆንስተን");
      put("Pacific/Kiritimati", "ኪሪቲማቲ");
      put("Pacific/Kosrae", "ኮስሬ እ");
      put("Pacific/Kwajalein", "ክዋጃሊን");
      put("Pacific/Majuro", "ማጁሩ");
      put("Pacific/Marquesas", "ማርክዌሳስ");
      put("Pacific/Midway", "አጋማሽ");
      put("Pacific/Nauru", "ናውሩ");
      put("Pacific/Niue", "ኒዌ");
      put("Pacific/Norfolk", "ኖርፎልክ");
      put("Pacific/Noumea", "ናኦሚአ");
      put("Pacific/Pago_Pago", "ፓጎ ፓጎ");
      put("Pacific/Palau", "ፓላው");
      put("Pacific/Pitcairn", "ፒትከይርን");
      put("Pacific/Ponape", "ፖህንፔ");
      put("Pacific/Port_Moresby", "ፖርት ሞሬስባይ");
      put("Pacific/Rarotonga", "ራሮቶንጋ");
      put("Pacific/Saipan", "ሴይፓን");
      put("Pacific/Tahiti", "ታሂቲ");
      put("Pacific/Tarawa", "ታራዋ");
      put("Pacific/Tongatapu", "ቶንጋታፑ");
      put("Pacific/Truk", "ቹክ");
      put("Pacific/Wake", "ዋቄ");
      put("Pacific/Wallis", "ዋሊስ");
      put("Arctic/Longyearbyen", "ሎንግይርባየን");
      put("Antarctica/Casey", "ካዚይ");
      put("Antarctica/Davis", "ዳቪስ");
      put("Antarctica/DumontDUrville", "ደሞንት ዲኡርቪል");
      put("Antarctica/Macquarie", "ማከሪ");
      put("Antarctica/Mawson", "ናውሰን");
      put("Antarctica/McMurdo", "ማክመርዶ");
      put("Antarctica/Palmer", "ፓልመር");
      put("Antarctica/Rothera", "ሮቴራ");
      put("Antarctica/Syowa", "ስዮዋ");
      put("Antarctica/Troll", "ትሮል");
      put("Antarctica/Vostok", "ቭስቶክ");
      put("Etc/GMT", "GMT");
      put("Etc/GMT1", "GMT+1");
      put("Etc/GMT10", "GMT+10");
      put("Etc/GMT11", "GMT+11");
      put("Etc/GMT12", "GMT+12");
      put("Etc/GMT2", "GMT+2");
      put("Etc/GMT3", "GMT+3");
      put("Etc/GMT4", "GMT+4");
      put("Etc/GMT5", "GMT+5");
      put("Etc/GMT6", "GMT+6");
      put("Etc/GMT7", "GMT+7");
      put("Etc/GMT8", "GMT+8");
      put("Etc/GMT9", "GMT+9");
      put("Etc/GMT-1", "GMT-1");
      put("Etc/GMT-10", "GMT-10");
      put("Etc/GMT-11", "GMT-11");
      put("Etc/GMT-12", "GMT-12");
      put("Etc/GMT-13", "GMT-13");
      put("Etc/GMT-14", "GMT-14");
      put("Etc/GMT-2", "GMT-2");
      put("Etc/GMT-3", "GMT-3");
      put("Etc/GMT-4", "GMT-4");
      put("Etc/GMT-5", "GMT-5");
      put("Etc/GMT-6", "GMT-6");
      put("Etc/GMT-7", "GMT-7");
      put("Etc/GMT-8", "GMT-8");
      put("Etc/GMT-9", "GMT-9");
      put("Etc/UTC", "UTC");
      put("Etc/Unknown", "ያልታወቀ ከተማ");
    } };

    this.timezoneNames = new HashMap() { {

      put("Europe/Dublin", new TimeZoneNames("Europe/Dublin",   new TimeZoneNames.Name(null, null, "የአይሪሽ መደበኛ ሰዓት አቆጣጠር"),
        null));

      put("Europe/London", new TimeZoneNames("Europe/London",   new TimeZoneNames.Name(null, null, "የብሪትሽ የበጋ ሰዓት አቆጣጠር"),
        null));

      put("Etc/UTC", new TimeZoneNames("Etc/UTC",   new TimeZoneNames.Name(null, "የተቀነባበረ ሁለገብ ሰዓት", null),
        new TimeZoneNames.Name(null, "UTC", null)));
    } };

    this.metazoneNames = new HashMap() { {

      put("Afghanistan", new TimeZoneNames("Afghanistan", 
        new TimeZoneNames.Name(null, "የአፍጋኒስታን ሰዓት", null),
        null));

      put("Africa_Central", new TimeZoneNames("Africa_Central", 
        new TimeZoneNames.Name(null, "የመካከለኛው አፍሪካ ሰዓት", null),
        null));

      put("Africa_Eastern", new TimeZoneNames("Africa_Eastern", 
        new TimeZoneNames.Name(null, "የምስራቅ አፍሪካ ሰዓት", null),
        null));

      put("Africa_Southern", new TimeZoneNames("Africa_Southern", 
        new TimeZoneNames.Name(null, "የደቡብ አፍሪካ መደበኛ ሰዓት", null),
        null));

      put("Africa_Western", new TimeZoneNames("Africa_Western", 
        new TimeZoneNames.Name("የምዕራብ አፍሪካ ሰዓት", "የምዕራብ አፍሪካ መደበኛ ሰዓት", "የምዕራብ አፍሪካ ክረምት ሰዓት"),
        null));

      put("Alaska", new TimeZoneNames("Alaska", 
        new TimeZoneNames.Name("የአላስካ ሰዓት አቆጣጠር", "የአላስካ መደበኛ የሰዓት አቆጣጠር", "የአላስካ የቀን ሰዓት አቆጣጠር"),
        null));

      put("Amazon", new TimeZoneNames("Amazon", 
        new TimeZoneNames.Name("የአማዞን ሰዓት አቆጣጠር", "የአማዞን መደበኛ ሰዓት አቆጣጠር", "የአማዞን የቀን ሰዓት አቆጣጠር"),
        null));

      put("America_Central", new TimeZoneNames("America_Central", 
        new TimeZoneNames.Name("የመካከለኛ ሰዓት አቆጣጠር", "የመካከለኛ መደበኛ ሰዓት አቆጣጠር", "የመካከለኛ የቀን ሰዓት አቆጣጠር"),
        null));

      put("America_Eastern", new TimeZoneNames("America_Eastern", 
        new TimeZoneNames.Name("የምዕራባዊ ሰዓት አቆጣጠር", "የምዕራባዊ መደበኛ የሰዓት አቆጣጠር", "የምዕራባዊ የቀን ሰዓት አቆጣጠር"),
        null));

      put("America_Mountain", new TimeZoneNames("America_Mountain", 
        new TimeZoneNames.Name("የተራራ የሰዓት አቆጣጠር", "የተራራ መደበኛ የሰዓት አቆጣጠር", "የተራራ የቀንሰዓት አቆጣጠር"),
        null));

      put("America_Pacific", new TimeZoneNames("America_Pacific", 
        new TimeZoneNames.Name("የፓስፊክ ሰዓት አቆጣጠር", "የፓስፊክ መደበኛ ሰዓት አቆጣጠር", "የፓስፊክ የቀን ሰዓት አቆጣጠር"),
        null));

      put("Anadyr", new TimeZoneNames("Anadyr", 
        new TimeZoneNames.Name("የአናድይር ሰዓት አቆጣጠር", "የአናዲይር ሰዓት አቆጣጠር", "የአናድይር የበጋ የሰዓት አቆጣጠር"),
        null));

      put("Apia", new TimeZoneNames("Apia", 
        new TimeZoneNames.Name("የአፒያ ሰዓት", "የአፒያ መደበኛ ሰዓት", "የአፒያ የቀን ጊዜ ሰዓት"),
        null));

      put("Arabian", new TimeZoneNames("Arabian", 
        new TimeZoneNames.Name("የዓረቢያ ሰዓት", "የዓረቢያ መደበኛ ሰዓት", "የዓረቢያ የቀን ብርሃን ሰዓት"),
        null));

      put("Argentina", new TimeZoneNames("Argentina", 
        new TimeZoneNames.Name("የአርጀንቲና የሰዓት አቆጣጠር", "የአርጀንቲና መደበኛ ሰዓት አቆጣጠር", "የአርጀንቲና የበጋ ሰዓት አቆጣጠር"),
        null));

      put("Argentina_Western", new TimeZoneNames("Argentina_Western", 
        new TimeZoneNames.Name("የአርጀንቲና ምስራቃዊ ሰዓት አቆጣጠር", "የምዕራባዊ አርጀንቲና መደበኛ ሰዓት አቆጣጠር", "የአርጀንቲና ምስራቃዊ በጋ ሰዓት አቆጣጠር"),
        null));

      put("Armenia", new TimeZoneNames("Armenia", 
        new TimeZoneNames.Name("የአርመኒያ ሰዓት", "የአርመኒያ መደበኛ ሰዓት", "የአርመኒያ ክረምት ሰዓት"),
        null));

      put("Atlantic", new TimeZoneNames("Atlantic", 
        new TimeZoneNames.Name("የአትላንቲክ የሰዓት አቆጣጠር", "የአትላንቲክ መደበኛ የሰዓት አቆጣጠር", "የአትላንቲክ የቀን ሰዓት አቆጣጠር"),
        null));

      put("Australia_Central", new TimeZoneNames("Australia_Central", 
        new TimeZoneNames.Name("የመካከለኛው አውስትራሊያ ሰዓት አቆጣጠር", "የአውስትራሊያ መካከለኛ መደበኛ የሰዓት አቆጣጠር", "የአውስትራሊያ መካከለኛ የቀን ሰዓት አቆጣጠር"),
        null));

      put("Australia_CentralWestern", new TimeZoneNames("Australia_CentralWestern", 
        new TimeZoneNames.Name("የአውስትራሊያ መካከለኛ ምስራቃዊ ሰዓት አቆጣጠር", "የአውስትራሊያ መካከለኛ ምስራቃዊ መደበኛ ሰዓት አቆጣጠር", "የአውስትራሊያ መካከለኛው ምስራቅ የቀን ሰዓት አቆጣጠር"),
        null));

      put("Australia_Eastern", new TimeZoneNames("Australia_Eastern", 
        new TimeZoneNames.Name("የምዕራባዊ አውስትራሊያ የሰዓት አቆጣጠር", "የአውስትራሊያ ምዕራባዊ መደበኛ የሰዓት አቆጣጠር", "የአውስትራሊያ ምዕራባዊ የቀን ሰዓት አቆጣጠር"),
        null));

      put("Australia_Western", new TimeZoneNames("Australia_Western", 
        new TimeZoneNames.Name("የምስራቃዊ አውስትራሊያ ሰዓት አቆጣጠር", "የአውስትራሊያ ምስራቃዊ መደበኛ ሰዓት አቆጣጠር", "የአውስትራሊያ ምስራቃዊ የቀን ሰዓት አቆጣጠር"),
        null));

      put("Azerbaijan", new TimeZoneNames("Azerbaijan", 
        new TimeZoneNames.Name("የአዘርባይጃን ሰዓት", "የአዘርባይጃን መደበኛ ሰዓት", "የአዘርባይጃን ክረምት ሰዓት"),
        null));

      put("Azores", new TimeZoneNames("Azores", 
        new TimeZoneNames.Name("የአዞረስ ሰዓት", "የአዞረስ መደበኛ ሰዓት", "የአዞረስ ክረምት ሰዓት"),
        null));

      put("Bangladesh", new TimeZoneNames("Bangladesh", 
        new TimeZoneNames.Name("የባንግላዴሽ ሰዓት", "የባንግላዴሽ መደበኛ ሰዓት", "የባንግላዴሽ ክረምት ሰዓት"),
        null));

      put("Bhutan", new TimeZoneNames("Bhutan", 
        new TimeZoneNames.Name(null, "የቡታን ሰዓት", null),
        null));

      put("Bolivia", new TimeZoneNames("Bolivia", 
        new TimeZoneNames.Name(null, "የቦሊቪያ ሰዓት", null),
        null));

      put("Brasilia", new TimeZoneNames("Brasilia", 
        new TimeZoneNames.Name("የብራዚላዊ ሰዓት አቆጣጠር", "የብራሲሊያ መደበኛ ሰዓት አቆጣጠር", "የብራዚላ የበጋ ሰዓት አቆጣጠር"),
        null));

      put("Brunei", new TimeZoneNames("Brunei", 
        new TimeZoneNames.Name(null, "የብሩኔይ ዳሩሳላም ሰዓት", null),
        null));

      put("Cape_Verde", new TimeZoneNames("Cape_Verde", 
        new TimeZoneNames.Name("የኬፕ ቨርዴ ሰዓት", "የኬፕ ቨርዴ መደበኛ ሰዓት", "የኬፕ ቨርዴ ክረምት ሰዓት"),
        null));

      put("Chamorro", new TimeZoneNames("Chamorro", 
        new TimeZoneNames.Name(null, "የቻሞሮ መደበኛ ሰዓት", null),
        null));

      put("Chatham", new TimeZoneNames("Chatham", 
        new TimeZoneNames.Name("የቻታም ሰዓት", "የቻታም መደበኛ ሰዓት", "የቻታም የቀን ብርሃን ሰዓት"),
        null));

      put("Chile", new TimeZoneNames("Chile", 
        new TimeZoneNames.Name("የቺሊ ሰዓት", "የቺሊ መደበኛ ሰዓት", "የቺሊ ክረምት ሰዓት"),
        null));

      put("China", new TimeZoneNames("China", 
        new TimeZoneNames.Name("የቻይና ሰዓት", "የቻይና መደበኛ ሰዓት", "የቻይና የቀን ብርሃን ሰዓት"),
        null));

      put("Choibalsan", new TimeZoneNames("Choibalsan", 
        new TimeZoneNames.Name("የቾይባልሳ ሰዓት አቆጣጠር", "የቾይባልሳን መደበኛ የሰዓት አቆጣጠር", "የቾይባልሳን የበጋ የሰአት አቆጣጠር"),
        null));

      put("Christmas", new TimeZoneNames("Christmas", 
        new TimeZoneNames.Name(null, "የገና ደሴት ሰዓት", null),
        null));

      put("Cocos", new TimeZoneNames("Cocos", 
        new TimeZoneNames.Name(null, "የኮኮስ ደሴቶች ሰዓት", null),
        null));

      put("Colombia", new TimeZoneNames("Colombia", 
        new TimeZoneNames.Name("የኮሎምቢያ ሰዓት", "የኮሎምቢያ መደበኛ ሰዓት", "የኮሎምቢያ ክረምት ሰዓት"),
        null));

      put("Cook", new TimeZoneNames("Cook", 
        new TimeZoneNames.Name("የኩክ ደሴቶች ሰዓት", "የኩክ ደሴቶች መደበኛ ሰዓት", "የኩክ ደሴቶች ግማሽ ክረምት ሰዓት"),
        null));

      put("Cuba", new TimeZoneNames("Cuba", 
        new TimeZoneNames.Name("ኩባ ሰዓት", "የኩባ መደበኛ ሰዓት", "የኩባ የቀን ብርሃን ሰዓት"),
        null));

      put("Davis", new TimeZoneNames("Davis", 
        new TimeZoneNames.Name(null, "የዴቪስ ሰዓት", null),
        null));

      put("DumontDUrville", new TimeZoneNames("DumontDUrville", 
        new TimeZoneNames.Name(null, "የዱሞንት-ዱርቪል ሰዓት", null),
        null));

      put("East_Timor", new TimeZoneNames("East_Timor", 
        new TimeZoneNames.Name(null, "የምስራቅ ቲሞር ሰዓት", null),
        null));

      put("Easter", new TimeZoneNames("Easter", 
        new TimeZoneNames.Name("የኢስተር ደሴት ሰዓት", "የኢስተር ደሴት መደበኛ ሰዓት", "የኢስተር ደሴት ክረምት ሰዓት"),
        null));

      put("Ecuador", new TimeZoneNames("Ecuador", 
        new TimeZoneNames.Name(null, "የኢኳዶር ሰዓት", null),
        null));

      put("Europe_Central", new TimeZoneNames("Europe_Central", 
        new TimeZoneNames.Name("የመካከለኛው አውሮፓ ሰዓት", "የመካከለኛው አውሮፓ መደበኛ ሰዓት", "የመካከለኛው አውሮፓ ክረምት ሰዓት"),
        null));

      put("Europe_Eastern", new TimeZoneNames("Europe_Eastern", 
        new TimeZoneNames.Name("የምስራቃዊ አውሮፓ ሰዓት", "የምስራቃዊ አውሮፓ መደበኛ ሰዓት", "የምስራቃዊ አውሮፓ ክረምት ሰዓት"),
        null));

      put("Europe_Further_Eastern", new TimeZoneNames("Europe_Further_Eastern", 
        new TimeZoneNames.Name(null, "የሩቅ ምስራቅ የአውሮፓ ሰዓት", null),
        null));

      put("Europe_Western", new TimeZoneNames("Europe_Western", 
        new TimeZoneNames.Name("የምዕራባዊ አውሮፓ ሰዓት", "የምዕራባዊ አውሮፓ መደበኛ ሰዓት", "የምዕራባዊ አውሮፓ ክረምት ሰዓት"),
        null));

      put("Falkland", new TimeZoneNames("Falkland", 
        new TimeZoneNames.Name("የፋልክላንድ ደሴቶች ሰዓት", "የፋልክላንድ ደሴቶች መደበኛ ሰዓት", "የፋልክላንድ ደሴቶች ክረምት ሰዓት"),
        null));

      put("Fiji", new TimeZoneNames("Fiji", 
        new TimeZoneNames.Name("የፊጂ ሰዓት", "የፊጂ መደበኛ ሰዓት", "የፊጂ ክረምት ሰዓት"),
        null));

      put("French_Guiana", new TimeZoneNames("French_Guiana", 
        new TimeZoneNames.Name(null, "የፈረንሳይ ጉያና ሰዓት", null),
        null));

      put("French_Southern", new TimeZoneNames("French_Southern", 
        new TimeZoneNames.Name(null, "የፈረንሳይ ደቡባዊ እና አንታርክቲክ ሰዓት", null),
        null));

      put("Galapagos", new TimeZoneNames("Galapagos", 
        new TimeZoneNames.Name(null, "የጋላፓጎስ ሰዓት", null),
        null));

      put("Gambier", new TimeZoneNames("Gambier", 
        new TimeZoneNames.Name(null, "የጋምቢየር ሰዓት", null),
        null));

      put("Georgia", new TimeZoneNames("Georgia", 
        new TimeZoneNames.Name("የጂዮርጂያ ሰዓት", "የጂዮርጂያ መደበኛ ሰዓት", "የጂዮርጂያ ክረምት ሰዓት"),
        null));

      put("Gilbert_Islands", new TimeZoneNames("Gilbert_Islands", 
        new TimeZoneNames.Name(null, "የጂልበርት ደሴቶች ሰዓት", null),
        null));

      put("GMT", new TimeZoneNames("GMT", 
        new TimeZoneNames.Name(null, "ግሪንዊች ማዕከላዊ ሰዓት", null),
        null));

      put("Greenland_Eastern", new TimeZoneNames("Greenland_Eastern", 
        new TimeZoneNames.Name("የምስራቅ ግሪንላንድ ሰዓት", "የምስራቅ ግሪንላንድ መደበኛ ሰዓት", "የምስራቅ ግሪንላንድ ክረምት ሰዓት"),
        null));

      put("Greenland_Western", new TimeZoneNames("Greenland_Western", 
        new TimeZoneNames.Name("የምዕራብ ግሪንላንድ ሰዓት", "የምዕራብ ግሪንላንድ መደበኛ ሰዓት", "የምዕራብ ግሪንላንድ ክረምት ሰዓት"),
        null));

      put("Gulf", new TimeZoneNames("Gulf", 
        new TimeZoneNames.Name(null, "የባህረሰላጤ መደበኛ ሰዓት", null),
        null));

      put("Guyana", new TimeZoneNames("Guyana", 
        new TimeZoneNames.Name(null, "የጉያና ሰዓት", null),
        null));

      put("Hawaii_Aleutian", new TimeZoneNames("Hawaii_Aleutian", 
        new TimeZoneNames.Name("የሃዋይ አሌኡት ሰዓት አቆጣጠር", "የሃዋይ አሌኡት መደበኛ ሰዓት አቆጣጠር", "የሃዋይ አሌኡት የቀን ሰዓት አቆጣጠር"),
        null));

      put("Hong_Kong", new TimeZoneNames("Hong_Kong", 
        new TimeZoneNames.Name("የሆንግ ኮንግ ሰዓት", "የሆንግ ኮንግ መደበኛ ሰዓት", "የሆንግ ኮንግ ክረምት ሰዓት"),
        null));

      put("Hovd", new TimeZoneNames("Hovd", 
        new TimeZoneNames.Name("የሆቭድ ሰዓት አቆጣጠር", "የሆቭድ መደበኛ የሰዓት አቆጣጠር", "የሆቭድ የበጋ ሰዓት አቆጣጠር"),
        null));

      put("India", new TimeZoneNames("India", 
        new TimeZoneNames.Name(null, "የህንድ መደበኛ ሰዓት", null),
        null));

      put("Indian_Ocean", new TimeZoneNames("Indian_Ocean", 
        new TimeZoneNames.Name(null, "የህንድ ውቅያኖስ ሰዓት", null),
        null));

      put("Indochina", new TimeZoneNames("Indochina", 
        new TimeZoneNames.Name(null, "የኢንዶቻይና ሰዓት", null),
        null));

      put("Indonesia_Central", new TimeZoneNames("Indonesia_Central", 
        new TimeZoneNames.Name(null, "የመካከለኛው ኢንዶኔዢያ ሰዓት", null),
        null));

      put("Indonesia_Eastern", new TimeZoneNames("Indonesia_Eastern", 
        new TimeZoneNames.Name(null, "የምስራቃዊ ኢንዶኔዢያ ሰዓት", null),
        null));

      put("Indonesia_Western", new TimeZoneNames("Indonesia_Western", 
        new TimeZoneNames.Name(null, "የምዕራባዊ ኢንዶኔዢያ ሰዓት", null),
        null));

      put("Iran", new TimeZoneNames("Iran", 
        new TimeZoneNames.Name("የኢራን ሰዓት", "የኢራን መደበኛ ሰዓት", "የኢራን የቀን ብርሃን ሰዓት"),
        null));

      put("Irkutsk", new TimeZoneNames("Irkutsk", 
        new TimeZoneNames.Name("የኢርኩትስክ ሰዓት አቆጣጠር", "የኢርኩትስክ መደበኛ የሰዓት አቆጣጠር", "ኢርኩትስክ የበጋ የሰዓት አቆጣጠር"),
        null));

      put("Israel", new TimeZoneNames("Israel", 
        new TimeZoneNames.Name("የእስራኤል ሰዓት", "የእስራኤል መደበኛ ሰዓት", "የእስራኤል የቀን ብርሃን ሰዓት"),
        null));

      put("Japan", new TimeZoneNames("Japan", 
        new TimeZoneNames.Name("የጃፓን ሰዓት", "የጃፓን መደበኛ ሰዓት", "የጃፓን የቀን ብርሃን ሰዓት"),
        null));

      put("Kamchatka", new TimeZoneNames("Kamchatka", 
        new TimeZoneNames.Name("የካምቻትካ ሰዓት አቆጣጠር", "የፔትሮፓቭሎስኪ - ካምቻትስኪ ሰዓት አቆጣጠር", "የፔትሮፓቭሎስኪ - ካምቻትስኪ የበጋ ሰዓት አቆጣጠር"),
        null));

      put("Kazakhstan_Eastern", new TimeZoneNames("Kazakhstan_Eastern", 
        new TimeZoneNames.Name(null, "የምስራቅ ካዛኪስታን ሰዓት", null),
        null));

      put("Kazakhstan_Western", new TimeZoneNames("Kazakhstan_Western", 
        new TimeZoneNames.Name(null, "የምዕራብ ካዛኪስታን ሰዓት", null),
        null));

      put("Korea", new TimeZoneNames("Korea", 
        new TimeZoneNames.Name("የኮሪያ ሰዓት", "የኮሪያ መደበኛ ሰዓት", "የኮሪያ የቀን ብርሃን ሰዓት"),
        null));

      put("Kosrae", new TimeZoneNames("Kosrae", 
        new TimeZoneNames.Name(null, "የኮስራኤ ሰዓት", null),
        null));

      put("Krasnoyarsk", new TimeZoneNames("Krasnoyarsk", 
        new TimeZoneNames.Name("የክራስኖያርስክ ሰዓት አቆጣጠር", "የክራስኖይአርስክ መደበኛ ሰዓት አቆጣጠር", "የክራስኖያርስክ የበጋ ሰዓት አቆጣጠር"),
        null));

      put("Kyrgystan", new TimeZoneNames("Kyrgystan", 
        new TimeZoneNames.Name(null, "የኪርጊስታን ሰዓት", null),
        null));

      put("Line_Islands", new TimeZoneNames("Line_Islands", 
        new TimeZoneNames.Name(null, "የላይን ደሴቶች ሰዓት", null),
        null));

      put("Lord_Howe", new TimeZoneNames("Lord_Howe", 
        new TimeZoneNames.Name("የሎርድ ሆዌ የሰዓት አቆጣጠር", "የሎርድ ሆዌ መደበኛ የሰዓት አቆጣጠር", "የሎርድ ሆዌ የቀን ሰዓት አቆጣጠር"),
        null));

      put("Macquarie", new TimeZoneNames("Macquarie", 
        new TimeZoneNames.Name(null, "የማከሪ ደሴት ሰዓት", null),
        null));

      put("Magadan", new TimeZoneNames("Magadan", 
        new TimeZoneNames.Name("የማጋዳን የሰዓት አቆጣጠር", "የማጋዳን መደበኛ ሰዓት አቆጣጠር", "የማጋዳን በጋ ሰዓት አቆጣጠር"),
        null));

      put("Malaysia", new TimeZoneNames("Malaysia", 
        new TimeZoneNames.Name(null, "የማሌይዢያ ሰዓት", null),
        null));

      put("Maldives", new TimeZoneNames("Maldives", 
        new TimeZoneNames.Name(null, "የማልዲቭስ ሰዓት", null),
        null));

      put("Marquesas", new TimeZoneNames("Marquesas", 
        new TimeZoneNames.Name(null, "የማርኴሳስ ሰዓት", null),
        null));

      put("Marshall_Islands", new TimeZoneNames("Marshall_Islands", 
        new TimeZoneNames.Name(null, "የማርሻል ደሴቶች ሰዓት", null),
        null));

      put("Mauritius", new TimeZoneNames("Mauritius", 
        new TimeZoneNames.Name("የማውሪሺየስ ሰዓት", "የማውሪሺየስ መደበኛ ሰዓት", "የማውሪሺየስ ክረምት ሰዓት"),
        null));

      put("Mawson", new TimeZoneNames("Mawson", 
        new TimeZoneNames.Name(null, "የማውሰን ሰዓት", null),
        null));

      put("Mexico_Northwest", new TimeZoneNames("Mexico_Northwest", 
        new TimeZoneNames.Name("ሰሜናዊ ምእራብ የሜክሲኮ ሰዓት አቆጣጠር", "ሰሜናዊ ምእራብ የሜክሲኮ መደበኛ ሰዓት አቆጣጠር", "ሰሜናዊ ምእራብ የሜክሲኮ የቀን ሰዓት አቆጣጠር"),
        null));

      put("Mexico_Pacific", new TimeZoneNames("Mexico_Pacific", 
        new TimeZoneNames.Name("የሜክሲኮ ፓሲፊክ ሰዓት አቆጣጠር", "የሜክሲኮ ፓሲፊክ መደበኛ ሰዓት አቆጣጠር", "የሜክሲኮ ፓሲፊክ የቀን ሰዓት አቆጣጠር"),
        null));

      put("Mongolia", new TimeZoneNames("Mongolia", 
        new TimeZoneNames.Name("የኡላን ባቶር ጊዜ", "የኡላን ባቶር መደበኛ ሰዓት አቆጣጠር", "የኡላን ባቶር የበጋ ሰዓት አቆጣጠር"),
        null));

      put("Moscow", new TimeZoneNames("Moscow", 
        new TimeZoneNames.Name("የሞስኮ ሰዓት አቆጣጠር", "የሞስኮ መደበኛ ሰዓት አቆጣጠር", "የሞስኮ የበጋ ሰዓት አቆጣጠር"),
        null));

      put("Myanmar", new TimeZoneNames("Myanmar", 
        new TimeZoneNames.Name(null, "የሚያንማር ሰዓት", null),
        null));

      put("Nauru", new TimeZoneNames("Nauru", 
        new TimeZoneNames.Name(null, "የናውሩ ሰዓት", null),
        null));

      put("Nepal", new TimeZoneNames("Nepal", 
        new TimeZoneNames.Name(null, "የኔፓል ሰዓት", null),
        null));

      put("New_Caledonia", new TimeZoneNames("New_Caledonia", 
        new TimeZoneNames.Name("የኒው ካሌዶኒያ ሰዓት", "የኒው ካሌዶኒያ መደበኛ ሰዓት", "የኒው ካሌዶኒያ ክረምት ሰዓት"),
        null));

      put("New_Zealand", new TimeZoneNames("New_Zealand", 
        new TimeZoneNames.Name("የኒው ዚላንድ ሰዓት", "የኒው ዚላንድ መደበኛ ሰዓት", "የኒው ዚላንድ የቀን ብርሃን ሰዓት"),
        null));

      put("Newfoundland", new TimeZoneNames("Newfoundland", 
        new TimeZoneNames.Name("የኒውፋውንድላንድ የሰዓት አቆጣጠር", "የኒውፋውንድላንድ መደበኛ የሰዓት አቆጣጠር", "የኒውፋውንድላንድ የቀን የሰዓት አቆጣጠር"),
        null));

      put("Niue", new TimeZoneNames("Niue", 
        new TimeZoneNames.Name(null, "የኒዩዌ ሰዓት", null),
        null));

      put("Norfolk", new TimeZoneNames("Norfolk", 
        new TimeZoneNames.Name(null, "የኖርፎልክ ደሴቶች ሰዓት", null),
        null));

      put("Noronha", new TimeZoneNames("Noronha", 
        new TimeZoneNames.Name("የኖሮንሃ ሰዓት አቆጣጠር", "የፈርናንዶ ዲ ኖሮንቻ መደበኛ ሰዓት አቆጣጠር", "የፈርናንዶ ዲ ኖሮንሃ የበጋ የሰዓት አቆጣጠር"),
        null));

      put("Novosibirsk", new TimeZoneNames("Novosibirsk", 
        new TimeZoneNames.Name("የኖቮሲብሪስክ የሰዓት አቆጣጠር", "የኖቮሲቢርስክ መደበኛ የሰዓት አቆጣጠር", "የኖቮሲብሪስክ የበጋ ሰአት አቆጣጠር"),
        null));

      put("Omsk", new TimeZoneNames("Omsk", 
        new TimeZoneNames.Name("የኦምስክ የሰዓት አቆጣጠር", "የኦምስክ መደበኛ ሰዓት አቆጣጠር", "የኦምስክ የበጋ ሰዓት አቆጣጠር"),
        null));

      put("Pakistan", new TimeZoneNames("Pakistan", 
        new TimeZoneNames.Name("የፓኪስታን ሰዓት", "የፓኪስታን መደበኛ ሰዓት", "የፓኪስታን ክረምት ሰዓት"),
        null));

      put("Palau", new TimeZoneNames("Palau", 
        new TimeZoneNames.Name(null, "የፓላው ሰዓት", null),
        null));

      put("Papua_New_Guinea", new TimeZoneNames("Papua_New_Guinea", 
        new TimeZoneNames.Name(null, "የፓፗ ኒው ጊኒ ሰዓት", null),
        null));

      put("Paraguay", new TimeZoneNames("Paraguay", 
        new TimeZoneNames.Name("የፓራጓይ ሰዓት", "የፓራጓይ መደበኛ ሰዓት", "የፓራጓይ ክረምት ሰዓት"),
        null));

      put("Peru", new TimeZoneNames("Peru", 
        new TimeZoneNames.Name("የፔሩ ሰዓት", "የፔሩ መደበኛ ሰዓት", "የፔሩ ክረምት ሰዓት"),
        null));

      put("Philippines", new TimeZoneNames("Philippines", 
        new TimeZoneNames.Name("የፊሊፒን ሰዓት", "የፊሊፒን መደበኛ ሰዓት", "የፊሊፒን ክረምት ሰዓት"),
        null));

      put("Phoenix_Islands", new TimeZoneNames("Phoenix_Islands", 
        new TimeZoneNames.Name(null, "የፊኒክስ ደሴቶች ሰዓት", null),
        null));

      put("Pierre_Miquelon", new TimeZoneNames("Pierre_Miquelon", 
        new TimeZoneNames.Name("ቅዱስ የፒዬር እና ሚኴሎን ሰዓት", "ቅዱስ የፒዬር እና ሚኴሎን መደበኛ ሰዓት", "ቅዱስ የፒዬር እና ሚኴሎን የቀን ብርሃን ሰዓት"),
        null));

      put("Pitcairn", new TimeZoneNames("Pitcairn", 
        new TimeZoneNames.Name(null, "የፒትካይርን ሰዓት", null),
        null));

      put("Ponape", new TimeZoneNames("Ponape", 
        new TimeZoneNames.Name(null, "የፖናፔ ሰዓት", null),
        null));

      put("Pyongyang", new TimeZoneNames("Pyongyang", 
        new TimeZoneNames.Name(null, "የፕዮንግያንግ ሰዓት", null),
        null));

      put("Reunion", new TimeZoneNames("Reunion", 
        new TimeZoneNames.Name(null, "የሬዩኒየን ሰዓት", null),
        null));

      put("Rothera", new TimeZoneNames("Rothera", 
        new TimeZoneNames.Name(null, "የሮቴራ ሰዓት", null),
        null));

      put("Sakhalin", new TimeZoneNames("Sakhalin", 
        new TimeZoneNames.Name("የሳክሃሊን ሰዓት አቆጣጠር", "የሳክሃሊን መደበኛ ሰዓት አቆጣጠር", "የሳክሃሊን የበጋ ሰዓት አቆጣጠር"),
        null));

      put("Samara", new TimeZoneNames("Samara", 
        new TimeZoneNames.Name("የሳማራ ሰዓት አቆጣጠር", "የሳማራ መደበኛ ሰዓት አቆጣጠር", "የሳማራ የበጋ ሰዓት አቆጣጠር"),
        null));

      put("Samoa", new TimeZoneNames("Samoa", 
        new TimeZoneNames.Name("የሳሞዋ ሰዓት", "የሳሞዋ መደበኛ ሰዓት", "የሳሞዋ የበጋ ሰዓት"),
        null));

      put("Seychelles", new TimeZoneNames("Seychelles", 
        new TimeZoneNames.Name(null, "የሴሸልስ ሰዓት", null),
        null));

      put("Singapore", new TimeZoneNames("Singapore", 
        new TimeZoneNames.Name(null, "የሲንጋፒር መደበኛ ሰዓት", null),
        null));

      put("Solomon", new TimeZoneNames("Solomon", 
        new TimeZoneNames.Name(null, "የሰለሞን ደሴቶች ሰዓት", null),
        null));

      put("South_Georgia", new TimeZoneNames("South_Georgia", 
        new TimeZoneNames.Name(null, "የደቡብ ጂዮርጂያ ሰዓት", null),
        null));

      put("Suriname", new TimeZoneNames("Suriname", 
        new TimeZoneNames.Name(null, "የሱሪናም ሰዓት", null),
        null));

      put("Syowa", new TimeZoneNames("Syowa", 
        new TimeZoneNames.Name(null, "የሲዮዋ ሰዓት", null),
        null));

      put("Tahiti", new TimeZoneNames("Tahiti", 
        new TimeZoneNames.Name(null, "የታሂቲ ሰዓት", null),
        null));

      put("Taipei", new TimeZoneNames("Taipei", 
        new TimeZoneNames.Name("የታይፔይ ሰዓት", "የታይፔይ መደበኛ ሰዓት", "የታይፔይ የቀን ብርሃን ሰዓት"),
        null));

      put("Tajikistan", new TimeZoneNames("Tajikistan", 
        new TimeZoneNames.Name(null, "የታጂኪስታን ሰዓት", null),
        null));

      put("Tokelau", new TimeZoneNames("Tokelau", 
        new TimeZoneNames.Name(null, "የቶኬላው ሰዓት", null),
        null));

      put("Tonga", new TimeZoneNames("Tonga", 
        new TimeZoneNames.Name("የቶንጋ ሰዓት", "የቶንጋ መደበኛ ሰዓት", "የቶንጋ ክረምት ሰዓት"),
        null));

      put("Truk", new TimeZoneNames("Truk", 
        new TimeZoneNames.Name(null, "የቹክ ሰዓት", null),
        null));

      put("Turkmenistan", new TimeZoneNames("Turkmenistan", 
        new TimeZoneNames.Name("የቱርክመኒስታን ሰዓት", "የቱርክመኒስታን መደበኛ ሰዓት", "የቱርክመኒስታን ክረምት ሰዓት"),
        null));

      put("Tuvalu", new TimeZoneNames("Tuvalu", 
        new TimeZoneNames.Name(null, "የቱቫሉ ሰዓት", null),
        null));

      put("Uruguay", new TimeZoneNames("Uruguay", 
        new TimeZoneNames.Name("የኡራጓይ ሰዓት", "የኡራጓይ መደበኛ ሰዓት", "የኡራጓይ ክረምት ሰዓት"),
        null));

      put("Uzbekistan", new TimeZoneNames("Uzbekistan", 
        new TimeZoneNames.Name("የኡዝቤኪስታን ሰዓት", "የኡዝቤኪስታን መደበኛ ሰዓት", "የኡዝቤኪስታን ክረምት ሰዓት"),
        null));

      put("Vanuatu", new TimeZoneNames("Vanuatu", 
        new TimeZoneNames.Name("የቫኗቱ ሰዓት", "የቫኗቱ መደበኛ ሰዓት", "የቫኗቱ ክረምት ሰዓት"),
        null));

      put("Venezuela", new TimeZoneNames("Venezuela", 
        new TimeZoneNames.Name(null, "የቬኔዝዌላ ሰዓት", null),
        null));

      put("Vladivostok", new TimeZoneNames("Vladivostok", 
        new TimeZoneNames.Name("የቭላዲቮስቶክ የሰዓት አቆጣጠር", "የቪላዲቮስቶክ መደበኛ የሰዓት አቆጣጠር", "የቭላዲቮስቶክ የበጋ የሰዓት አቆጣጠር"),
        null));

      put("Volgograd", new TimeZoneNames("Volgograd", 
        new TimeZoneNames.Name("የቮልጎራድ የሰዓት አቆጣጠር", "የቮልጎራድ መደበኛ ሰዓት አቆጣጠር", "የቫልጎራድ የበጋ ሰዓት አቆጣጠር"),
        null));

      put("Vostok", new TimeZoneNames("Vostok", 
        new TimeZoneNames.Name(null, "የቮስቶክ ሰዓት", null),
        null));

      put("Wake", new TimeZoneNames("Wake", 
        new TimeZoneNames.Name(null, "የዌክ ደሴት ሰዓት", null),
        null));

      put("Wallis", new TimeZoneNames("Wallis", 
        new TimeZoneNames.Name(null, "የዋሊስ እና ፉቱና ሰዓት", null),
        null));

      put("Yakutsk", new TimeZoneNames("Yakutsk", 
        new TimeZoneNames.Name("ያኩትስክ የሰዓት አቆጣጠር", "ያኩትስክ መደበኛ ሰዓት አቆጣጠር", "የያኩትስክ የበጋ ሰዓት አቆጣጠር"),
        null));

      put("Yekaterinburg", new TimeZoneNames("Yekaterinburg", 
        new TimeZoneNames.Name("የየካተሪንበርግ ሰዓት አቆጣጠር", "የየካተሪንበርግ መደበኛ ሰዓት አቆጣጠር", "የየካተሪንበርግ የበጋ ሰዓት አቆጣጠር"),
        null));
    } };
  }

  @Override
  public void formatDate(CalendarFormat type, ZonedDateTime d, StringBuilder b) {
    if (type == null) {
      return;
    }
    switch (type) {
      case SHORT: {
        // "dd/MM/y"
        formatField(d, 'd', 2, b);
        b.append("/");
        formatField(d, 'M', 2, b);
        b.append("/");
        formatField(d, 'y', 1, b);
        break;
      }
      case MEDIUM: {
        // "d MMM y"
        formatField(d, 'd', 1, b);
        b.append(" ");
        formatField(d, 'M', 3, b);
        b.append(" ");
        formatField(d, 'y', 1, b);
        break;
      }
      case LONG: {
        // "d MMMM y"
        formatField(d, 'd', 1, b);
        b.append(" ");
        formatField(d, 'M', 4, b);
        b.append(" ");
        formatField(d, 'y', 1, b);
        break;
      }
      case FULL: {
        // "EEEE ፣d MMMM y"
        formatField(d, 'E', 4, b);
        b.append(" ፣");
        formatField(d, 'd', 1, b);
        b.append(" ");
        formatField(d, 'M', 4, b);
        b.append(" ");
        formatField(d, 'y', 1, b);
        break;
      }
    }
  }

  @Override
  public void formatTime(CalendarFormat type, ZonedDateTime d, StringBuilder b) {
    if (type == null) {
      return;
    }
    switch (type) {
      case SHORT: {
        // "h:mm a"
        formatField(d, 'h', 1, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        b.append(" ");
        formatField(d, 'a', 1, b);
        break;
      }
      case MEDIUM: {
        // "h:mm:ss a"
        formatField(d, 'h', 1, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        b.append(":");
        formatField(d, 's', 2, b);
        b.append(" ");
        formatField(d, 'a', 1, b);
        break;
      }
      case LONG: {
        // "h:mm:ss a z"
        formatField(d, 'h', 1, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        b.append(":");
        formatField(d, 's', 2, b);
        b.append(" ");
        formatField(d, 'a', 1, b);
        b.append(" ");
        formatField(d, 'z', 1, b);
        break;
      }
      case FULL: {
        // "h:mm:ss a zzzz"
        formatField(d, 'h', 1, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        b.append(":");
        formatField(d, 's', 2, b);
        b.append(" ");
        formatField(d, 'a', 1, b);
        b.append(" ");
        formatField(d, 'z', 4, b);
        break;
      }
    }
  }

  @Override
  public void formatWrapped(CalendarFormat wrapperType, CalendarFormat dateType,
      CalendarFormat timeType, String dateSkel, String timeSkel, ZonedDateTime d, StringBuilder b) {
    switch (wrapperType) {
      case SHORT:
      case MEDIUM:
      case LONG:
      case FULL:
       {
        // "{1} {0}"
        if (dateType != null) {
          formatDate(dateType, d, b);
        } else {
          formatSkeleton(dateSkel, d, b);
        }
        b.append(" ");
        if (timeType != null) {
          formatTime(timeType, d, b);
        } else {
          formatSkeleton(timeSkel, d, b);
        }
        break;
      }
    }
  }

  @Override
  public boolean formatSkeleton(String skeleton, ZonedDateTime d, StringBuilder b) {
    if (skeleton == null) {
      return false;
    }
    switch (skeleton) {
      case "d": {
        // Pattern: "d"
        formatField(d, 'd', 1, b);
        break;
      }
      case "E": {
        // Pattern: "ccc"
        formatField(d, 'c', 3, b);
        break;
      }
      case "Ed": {
        // Pattern: "E d"
        formatField(d, 'E', 1, b);
        b.append(" ");
        formatField(d, 'd', 1, b);
        break;
      }
      case "Ehm": {
        // Pattern: "E h:mm a"
        formatField(d, 'E', 1, b);
        b.append(" ");
        formatField(d, 'h', 1, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        b.append(" ");
        formatField(d, 'a', 1, b);
        break;
      }
      case "EHm": {
        // Pattern: "E HH:mm"
        formatField(d, 'E', 1, b);
        b.append(" ");
        formatField(d, 'H', 2, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        break;
      }
      case "Ehms": {
        // Pattern: "E h:mm:ss a"
        formatField(d, 'E', 1, b);
        b.append(" ");
        formatField(d, 'h', 1, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        b.append(":");
        formatField(d, 's', 2, b);
        b.append(" ");
        formatField(d, 'a', 1, b);
        break;
      }
      case "EHms": {
        // Pattern: "E HH:mm:ss"
        formatField(d, 'E', 1, b);
        b.append(" ");
        formatField(d, 'H', 2, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        b.append(":");
        formatField(d, 's', 2, b);
        break;
      }
      case "Gy": {
        // Pattern: "y G"
        formatField(d, 'y', 1, b);
        b.append(" ");
        formatField(d, 'G', 1, b);
        break;
      }
      case "GyMMM": {
        // Pattern: "MMM y G"
        formatField(d, 'M', 3, b);
        b.append(" ");
        formatField(d, 'y', 1, b);
        b.append(" ");
        formatField(d, 'G', 1, b);
        break;
      }
      case "GyMMMd": {
        // Pattern: "MMM d፣ y G"
        formatField(d, 'M', 3, b);
        b.append(" ");
        formatField(d, 'd', 1, b);
        b.append("፣ ");
        formatField(d, 'y', 1, b);
        b.append(" ");
        formatField(d, 'G', 1, b);
        break;
      }
      case "GyMMMEd": {
        // Pattern: "E፣ MMM d፣ y G"
        formatField(d, 'E', 1, b);
        b.append("፣ ");
        formatField(d, 'M', 3, b);
        b.append(" ");
        formatField(d, 'd', 1, b);
        b.append("፣ ");
        formatField(d, 'y', 1, b);
        b.append(" ");
        formatField(d, 'G', 1, b);
        break;
      }
      case "h": {
        // Pattern: "h a"
        formatField(d, 'h', 1, b);
        b.append(" ");
        formatField(d, 'a', 1, b);
        break;
      }
      case "H": {
        // Pattern: "H"
        formatField(d, 'H', 1, b);
        break;
      }
      case "hm": {
        // Pattern: "h:mm a"
        formatField(d, 'h', 1, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        b.append(" ");
        formatField(d, 'a', 1, b);
        break;
      }
      case "Hm": {
        // Pattern: "HH:mm"
        formatField(d, 'H', 2, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        break;
      }
      case "hms": {
        // Pattern: "h:mm:ss a"
        formatField(d, 'h', 1, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        b.append(":");
        formatField(d, 's', 2, b);
        b.append(" ");
        formatField(d, 'a', 1, b);
        break;
      }
      case "Hms": {
        // Pattern: "HH:mm:ss"
        formatField(d, 'H', 2, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        b.append(":");
        formatField(d, 's', 2, b);
        break;
      }
      case "hmsv": {
        // Pattern: "h:mm:ss a v"
        formatField(d, 'h', 1, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        b.append(":");
        formatField(d, 's', 2, b);
        b.append(" ");
        formatField(d, 'a', 1, b);
        b.append(" ");
        formatField(d, 'v', 1, b);
        break;
      }
      case "Hmsv": {
        // Pattern: "HH:mm:ss v"
        formatField(d, 'H', 2, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        b.append(":");
        formatField(d, 's', 2, b);
        b.append(" ");
        formatField(d, 'v', 1, b);
        break;
      }
      case "hmv": {
        // Pattern: "h:mm a v"
        formatField(d, 'h', 1, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        b.append(" ");
        formatField(d, 'a', 1, b);
        b.append(" ");
        formatField(d, 'v', 1, b);
        break;
      }
      case "Hmv": {
        // Pattern: "HH:mm v"
        formatField(d, 'H', 2, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        b.append(" ");
        formatField(d, 'v', 1, b);
        break;
      }
      case "M": {
        // Pattern: "L"
        formatField(d, 'L', 1, b);
        break;
      }
      case "Md": {
        // Pattern: "M/d"
        formatField(d, 'M', 1, b);
        b.append("/");
        formatField(d, 'd', 1, b);
        break;
      }
      case "MEd": {
        // Pattern: "E፣ M/d"
        formatField(d, 'E', 1, b);
        b.append("፣ ");
        formatField(d, 'M', 1, b);
        b.append("/");
        formatField(d, 'd', 1, b);
        break;
      }
      case "MMM": {
        // Pattern: "LLL"
        formatField(d, 'L', 3, b);
        break;
      }
      case "MMMd": {
        // Pattern: "MMM d"
        formatField(d, 'M', 3, b);
        b.append(" ");
        formatField(d, 'd', 1, b);
        break;
      }
      case "MMMEd": {
        // Pattern: "E፣ MMM d"
        formatField(d, 'E', 1, b);
        b.append("፣ ");
        formatField(d, 'M', 3, b);
        b.append(" ");
        formatField(d, 'd', 1, b);
        break;
      }
      case "MMMMd": {
        // Pattern: "MMMM d"
        formatField(d, 'M', 4, b);
        b.append(" ");
        formatField(d, 'd', 1, b);
        break;
      }
      case "MMMMEd": {
        // Pattern: "E፣ MMMM d"
        formatField(d, 'E', 1, b);
        b.append("፣ ");
        formatField(d, 'M', 4, b);
        b.append(" ");
        formatField(d, 'd', 1, b);
        break;
      }
      case "MMMMW-count-one": {
        // Pattern: "'week' W 'of' MMM"
        b.append("week ");
        formatField(d, 'W', 1, b);
        b.append(" of ");
        formatField(d, 'M', 3, b);
        break;
      }
      case "MMMMW-count-other": {
        // Pattern: "'week' W 'of' MMM"
        b.append("week ");
        formatField(d, 'W', 1, b);
        b.append(" of ");
        formatField(d, 'M', 3, b);
        break;
      }
      case "ms": {
        // Pattern: "mm:ss"
        formatField(d, 'm', 2, b);
        b.append(":");
        formatField(d, 's', 2, b);
        break;
      }
      case "y": {
        // Pattern: "y"
        formatField(d, 'y', 1, b);
        break;
      }
      case "yM": {
        // Pattern: "M/y"
        formatField(d, 'M', 1, b);
        b.append("/");
        formatField(d, 'y', 1, b);
        break;
      }
      case "yMd": {
        // Pattern: "d/M/y"
        formatField(d, 'd', 1, b);
        b.append("/");
        formatField(d, 'M', 1, b);
        b.append("/");
        formatField(d, 'y', 1, b);
        break;
      }
      case "yMEd": {
        // Pattern: "E፣ d/M/y"
        formatField(d, 'E', 1, b);
        b.append("፣ ");
        formatField(d, 'd', 1, b);
        b.append("/");
        formatField(d, 'M', 1, b);
        b.append("/");
        formatField(d, 'y', 1, b);
        break;
      }
      case "yMMM": {
        // Pattern: "MMM y"
        formatField(d, 'M', 3, b);
        b.append(" ");
        formatField(d, 'y', 1, b);
        break;
      }
      case "yMMMd": {
        // Pattern: "d MMM y"
        formatField(d, 'd', 1, b);
        b.append(" ");
        formatField(d, 'M', 3, b);
        b.append(" ");
        formatField(d, 'y', 1, b);
        break;
      }
      case "yMMMEd": {
        // Pattern: "E፣ MMM d y"
        formatField(d, 'E', 1, b);
        b.append("፣ ");
        formatField(d, 'M', 3, b);
        b.append(" ");
        formatField(d, 'd', 1, b);
        b.append(" ");
        formatField(d, 'y', 1, b);
        break;
      }
      case "yMMMM": {
        // Pattern: "MMMM y"
        formatField(d, 'M', 4, b);
        b.append(" ");
        formatField(d, 'y', 1, b);
        break;
      }
      case "yQQQ": {
        // Pattern: "QQQ y"
        formatField(d, 'Q', 3, b);
        b.append(" ");
        formatField(d, 'y', 1, b);
        break;
      }
      case "yQQQQ": {
        // Pattern: "QQQQ y"
        formatField(d, 'Q', 4, b);
        b.append(" ");
        formatField(d, 'y', 1, b);
        break;
      }
      case "yw-count-one": {
        // Pattern: "'week' w 'of' y"
        b.append("week ");
        formatField(d, 'w', 1, b);
        b.append(" of ");
        formatField(d, 'y', 1, b);
        break;
      }
      case "yw-count-other": {
        // Pattern: "'week' w 'of' y"
        b.append("week ");
        formatField(d, 'w', 1, b);
        b.append(" of ");
        formatField(d, 'y', 1, b);
        break;
      }
      default: {
        return false;
      }
    }
    return true;
  }

  @Override
  public void formatInterval(ZonedDateTime s, ZonedDateTime e, String k, DateTimeField f,
      StringBuilder b) {
    if (k != null && f != null) {
      switch (k) {
        case "d": {
          switch (f) {
            case DAY: {
              // "d–"
              formatField(s, 'd', 1, b);
              b.append("–");
              // "d"
              formatField(e, 'd', 1, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "hm": {
          switch (f) {
            case AM_PM: {
              // "h:mm a – "
              formatField(s, 'h', 1, b);
              b.append(":");
              formatField(s, 'm', 2, b);
              b.append(" ");
              formatField(s, 'a', 1, b);
              b.append(" – ");
              // "h:mm a"
              formatField(e, 'h', 1, b);
              b.append(":");
              formatField(e, 'm', 2, b);
              b.append(" ");
              formatField(e, 'a', 1, b);
              return;
            }
            case HOUR: {
              // "h:mm – "
              formatField(s, 'h', 1, b);
              b.append(":");
              formatField(s, 'm', 2, b);
              b.append(" – ");
              // "h:mm a"
              formatField(e, 'h', 1, b);
              b.append(":");
              formatField(e, 'm', 2, b);
              b.append(" ");
              formatField(e, 'a', 1, b);
              return;
            }
            case MINUTE: {
              // "h:mm – "
              formatField(s, 'h', 1, b);
              b.append(":");
              formatField(s, 'm', 2, b);
              b.append(" – ");
              // "h:mm a"
              formatField(e, 'h', 1, b);
              b.append(":");
              formatField(e, 'm', 2, b);
              b.append(" ");
              formatField(e, 'a', 1, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "Hm": {
          switch (f) {
            case HOUR: {
              // "HH:mm–"
              formatField(s, 'H', 2, b);
              b.append(":");
              formatField(s, 'm', 2, b);
              b.append("–");
              // "HH:mm"
              formatField(e, 'H', 2, b);
              b.append(":");
              formatField(e, 'm', 2, b);
              return;
            }
            case MINUTE: {
              // "HH:mm–"
              formatField(s, 'H', 2, b);
              b.append(":");
              formatField(s, 'm', 2, b);
              b.append("–");
              // "HH:mm"
              formatField(e, 'H', 2, b);
              b.append(":");
              formatField(e, 'm', 2, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "h": {
          switch (f) {
            case AM_PM: {
              // "h a – "
              formatField(s, 'h', 1, b);
              b.append(" ");
              formatField(s, 'a', 1, b);
              b.append(" – ");
              // "h a"
              formatField(e, 'h', 1, b);
              b.append(" ");
              formatField(e, 'a', 1, b);
              return;
            }
            case HOUR: {
              // "h – "
              formatField(s, 'h', 1, b);
              b.append(" – ");
              // "h a"
              formatField(e, 'h', 1, b);
              b.append(" ");
              formatField(e, 'a', 1, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "H": {
          switch (f) {
            case HOUR: {
              // "HH–"
              formatField(s, 'H', 2, b);
              b.append("–");
              // "HH"
              formatField(e, 'H', 2, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "yMMMEd": {
          switch (f) {
            case DAY: {
              // "E MMM d – "
              formatField(s, 'E', 1, b);
              b.append(" ");
              formatField(s, 'M', 3, b);
              b.append(" ");
              formatField(s, 'd', 1, b);
              b.append(" – ");
              // "E MMM d፣ y"
              formatField(e, 'E', 1, b);
              b.append(" ");
              formatField(e, 'M', 3, b);
              b.append(" ");
              formatField(e, 'd', 1, b);
              b.append("፣ ");
              formatField(e, 'y', 1, b);
              return;
            }
            case YEAR: {
              // "E፣ MMM d፣ y – "
              formatField(s, 'E', 1, b);
              b.append("፣ ");
              formatField(s, 'M', 3, b);
              b.append(" ");
              formatField(s, 'd', 1, b);
              b.append("፣ ");
              formatField(s, 'y', 1, b);
              b.append(" – ");
              // "E፣ MMM d፣ y"
              formatField(e, 'E', 1, b);
              b.append("፣ ");
              formatField(e, 'M', 3, b);
              b.append(" ");
              formatField(e, 'd', 1, b);
              b.append("፣ ");
              formatField(e, 'y', 1, b);
              return;
            }
            case MONTH: {
              // "E MMM d – "
              formatField(s, 'E', 1, b);
              b.append(" ");
              formatField(s, 'M', 3, b);
              b.append(" ");
              formatField(s, 'd', 1, b);
              b.append(" – ");
              // "E MMM d፣ y"
              formatField(e, 'E', 1, b);
              b.append(" ");
              formatField(e, 'M', 3, b);
              b.append(" ");
              formatField(e, 'd', 1, b);
              b.append("፣ ");
              formatField(e, 'y', 1, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "yMEd": {
          switch (f) {
            case DAY: {
              // "E፣ d/M/y – "
              formatField(s, 'E', 1, b);
              b.append("፣ ");
              formatField(s, 'd', 1, b);
              b.append("/");
              formatField(s, 'M', 1, b);
              b.append("/");
              formatField(s, 'y', 1, b);
              b.append(" – ");
              // "E፣ d/M/y"
              formatField(e, 'E', 1, b);
              b.append("፣ ");
              formatField(e, 'd', 1, b);
              b.append("/");
              formatField(e, 'M', 1, b);
              b.append("/");
              formatField(e, 'y', 1, b);
              return;
            }
            case YEAR: {
              // "E፣ d/M/y – "
              formatField(s, 'E', 1, b);
              b.append("፣ ");
              formatField(s, 'd', 1, b);
              b.append("/");
              formatField(s, 'M', 1, b);
              b.append("/");
              formatField(s, 'y', 1, b);
              b.append(" – ");
              // "E፣ d/M/y"
              formatField(e, 'E', 1, b);
              b.append("፣ ");
              formatField(e, 'd', 1, b);
              b.append("/");
              formatField(e, 'M', 1, b);
              b.append("/");
              formatField(e, 'y', 1, b);
              return;
            }
            case MONTH: {
              // "E d/M/ – "
              formatField(s, 'E', 1, b);
              b.append(" ");
              formatField(s, 'd', 1, b);
              b.append("/");
              formatField(s, 'M', 1, b);
              b.append("/ – ");
              // "E d/M፣ y"
              formatField(e, 'E', 1, b);
              b.append(" ");
              formatField(e, 'd', 1, b);
              b.append("/");
              formatField(e, 'M', 1, b);
              b.append("፣ ");
              formatField(e, 'y', 1, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "MMM": {
          switch (f) {
            case MONTH: {
              // "MMM–"
              formatField(s, 'M', 3, b);
              b.append("–");
              // "MMM"
              formatField(e, 'M', 3, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "yMMM": {
          switch (f) {
            case YEAR: {
              // "MMM y – "
              formatField(s, 'M', 3, b);
              b.append(" ");
              formatField(s, 'y', 1, b);
              b.append(" – ");
              // "MMM y"
              formatField(e, 'M', 3, b);
              b.append(" ");
              formatField(e, 'y', 1, b);
              return;
            }
            case MONTH: {
              // "MMM–"
              formatField(s, 'M', 3, b);
              b.append("–");
              // "MMM፣ y"
              formatField(e, 'M', 3, b);
              b.append("፣ ");
              formatField(e, 'y', 1, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "M": {
          switch (f) {
            case MONTH: {
              // "M–"
              formatField(s, 'M', 1, b);
              b.append("–");
              // "M"
              formatField(e, 'M', 1, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "MEd": {
          switch (f) {
            case DAY: {
              // "E d/M – "
              formatField(s, 'E', 1, b);
              b.append(" ");
              formatField(s, 'd', 1, b);
              b.append("/");
              formatField(s, 'M', 1, b);
              b.append(" – ");
              // "E d/M"
              formatField(e, 'E', 1, b);
              b.append(" ");
              formatField(e, 'd', 1, b);
              b.append("/");
              formatField(e, 'M', 1, b);
              return;
            }
            case MONTH: {
              // "E፣ d/M – "
              formatField(s, 'E', 1, b);
              b.append("፣ ");
              formatField(s, 'd', 1, b);
              b.append("/");
              formatField(s, 'M', 1, b);
              b.append(" – ");
              // "E፣ d/M"
              formatField(e, 'E', 1, b);
              b.append("፣ ");
              formatField(e, 'd', 1, b);
              b.append("/");
              formatField(e, 'M', 1, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "MMMEd": {
          switch (f) {
            case DAY: {
              // "E d – "
              formatField(s, 'E', 1, b);
              b.append(" ");
              formatField(s, 'd', 1, b);
              b.append(" – ");
              // "E d፣ MMM"
              formatField(e, 'E', 1, b);
              b.append(" ");
              formatField(e, 'd', 1, b);
              b.append("፣ ");
              formatField(e, 'M', 3, b);
              return;
            }
            case MONTH: {
              // "E፣ MMM d – "
              formatField(s, 'E', 1, b);
              b.append("፣ ");
              formatField(s, 'M', 3, b);
              b.append(" ");
              formatField(s, 'd', 1, b);
              b.append(" – ");
              // "E፣ MMM d"
              formatField(e, 'E', 1, b);
              b.append("፣ ");
              formatField(e, 'M', 3, b);
              b.append(" ");
              formatField(e, 'd', 1, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "hv": {
          switch (f) {
            case AM_PM: {
              // "h a – "
              formatField(s, 'h', 1, b);
              b.append(" ");
              formatField(s, 'a', 1, b);
              b.append(" – ");
              // "h a v"
              formatField(e, 'h', 1, b);
              b.append(" ");
              formatField(e, 'a', 1, b);
              b.append(" ");
              formatField(e, 'v', 1, b);
              return;
            }
            case HOUR: {
              // "h – "
              formatField(s, 'h', 1, b);
              b.append(" – ");
              // "h a v"
              formatField(e, 'h', 1, b);
              b.append(" ");
              formatField(e, 'a', 1, b);
              b.append(" ");
              formatField(e, 'v', 1, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "Hv": {
          switch (f) {
            case HOUR: {
              // "HH–"
              formatField(s, 'H', 2, b);
              b.append("–");
              // "HH v"
              formatField(e, 'H', 2, b);
              b.append(" ");
              formatField(e, 'v', 1, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "hmv": {
          switch (f) {
            case AM_PM: {
              // "h:mm a – "
              formatField(s, 'h', 1, b);
              b.append(":");
              formatField(s, 'm', 2, b);
              b.append(" ");
              formatField(s, 'a', 1, b);
              b.append(" – ");
              // "h:mm a v"
              formatField(e, 'h', 1, b);
              b.append(":");
              formatField(e, 'm', 2, b);
              b.append(" ");
              formatField(e, 'a', 1, b);
              b.append(" ");
              formatField(e, 'v', 1, b);
              return;
            }
            case HOUR: {
              // "h:mm – "
              formatField(s, 'h', 1, b);
              b.append(":");
              formatField(s, 'm', 2, b);
              b.append(" – ");
              // "h:mm a v"
              formatField(e, 'h', 1, b);
              b.append(":");
              formatField(e, 'm', 2, b);
              b.append(" ");
              formatField(e, 'a', 1, b);
              b.append(" ");
              formatField(e, 'v', 1, b);
              return;
            }
            case MINUTE: {
              // "h:mm – "
              formatField(s, 'h', 1, b);
              b.append(":");
              formatField(s, 'm', 2, b);
              b.append(" – ");
              // "h:mm a v"
              formatField(e, 'h', 1, b);
              b.append(":");
              formatField(e, 'm', 2, b);
              b.append(" ");
              formatField(e, 'a', 1, b);
              b.append(" ");
              formatField(e, 'v', 1, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "Hmv": {
          switch (f) {
            case HOUR: {
              // "HH:mm–"
              formatField(s, 'H', 2, b);
              b.append(":");
              formatField(s, 'm', 2, b);
              b.append("–");
              // "HH:mm v"
              formatField(e, 'H', 2, b);
              b.append(":");
              formatField(e, 'm', 2, b);
              b.append(" ");
              formatField(e, 'v', 1, b);
              return;
            }
            case MINUTE: {
              // "HH:mm–"
              formatField(s, 'H', 2, b);
              b.append(":");
              formatField(s, 'm', 2, b);
              b.append("–");
              // "HH:mm v"
              formatField(e, 'H', 2, b);
              b.append(":");
              formatField(e, 'm', 2, b);
              b.append(" ");
              formatField(e, 'v', 1, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "yMd": {
          switch (f) {
            case DAY: {
              // "d/M/y – "
              formatField(s, 'd', 1, b);
              b.append("/");
              formatField(s, 'M', 1, b);
              b.append("/");
              formatField(s, 'y', 1, b);
              b.append(" – ");
              // "d/M/y"
              formatField(e, 'd', 1, b);
              b.append("/");
              formatField(e, 'M', 1, b);
              b.append("/");
              formatField(e, 'y', 1, b);
              return;
            }
            case YEAR: {
              // "d/M/y – "
              formatField(s, 'd', 1, b);
              b.append("/");
              formatField(s, 'M', 1, b);
              b.append("/");
              formatField(s, 'y', 1, b);
              b.append(" – ");
              // "d/M/y"
              formatField(e, 'd', 1, b);
              b.append("/");
              formatField(e, 'M', 1, b);
              b.append("/");
              formatField(e, 'y', 1, b);
              return;
            }
            case MONTH: {
              // "d/M/y – "
              formatField(s, 'd', 1, b);
              b.append("/");
              formatField(s, 'M', 1, b);
              b.append("/");
              formatField(s, 'y', 1, b);
              b.append(" – ");
              // "d/M/y"
              formatField(e, 'd', 1, b);
              b.append("/");
              formatField(e, 'M', 1, b);
              b.append("/");
              formatField(e, 'y', 1, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "MMMd": {
          switch (f) {
            case DAY: {
              // "MMM d–"
              formatField(s, 'M', 3, b);
              b.append(" ");
              formatField(s, 'd', 1, b);
              b.append("–");
              // "d"
              formatField(e, 'd', 1, b);
              return;
            }
            case MONTH: {
              // "MMM d – "
              formatField(s, 'M', 3, b);
              b.append(" ");
              formatField(s, 'd', 1, b);
              b.append(" – ");
              // "MMM d"
              formatField(e, 'M', 3, b);
              b.append(" ");
              formatField(e, 'd', 1, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "yM": {
          switch (f) {
            case YEAR: {
              // "M/y – "
              formatField(s, 'M', 1, b);
              b.append("/");
              formatField(s, 'y', 1, b);
              b.append(" – ");
              // "M/y"
              formatField(e, 'M', 1, b);
              b.append("/");
              formatField(e, 'y', 1, b);
              return;
            }
            case MONTH: {
              // "M/y – "
              formatField(s, 'M', 1, b);
              b.append("/");
              formatField(s, 'y', 1, b);
              b.append(" – ");
              // "M/y"
              formatField(e, 'M', 1, b);
              b.append("/");
              formatField(e, 'y', 1, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "yMMMM": {
          switch (f) {
            case YEAR: {
              // "MMMM y – "
              formatField(s, 'M', 4, b);
              b.append(" ");
              formatField(s, 'y', 1, b);
              b.append(" – ");
              // "MMMM y"
              formatField(e, 'M', 4, b);
              b.append(" ");
              formatField(e, 'y', 1, b);
              return;
            }
            case MONTH: {
              // "MMMM–"
              formatField(s, 'M', 4, b);
              b.append("–");
              // "MMMM y"
              formatField(e, 'M', 4, b);
              b.append(" ");
              formatField(e, 'y', 1, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "Md": {
          switch (f) {
            case DAY: {
              // "d–"
              formatField(s, 'd', 1, b);
              b.append("–");
              // "d/M"
              formatField(e, 'd', 1, b);
              b.append("/");
              formatField(e, 'M', 1, b);
              return;
            }
            case MONTH: {
              // "d/M – "
              formatField(s, 'd', 1, b);
              b.append("/");
              formatField(s, 'M', 1, b);
              b.append(" – ");
              // "d/M"
              formatField(e, 'd', 1, b);
              b.append("/");
              formatField(e, 'M', 1, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "y": {
          switch (f) {
            case YEAR: {
              // "y–"
              formatField(s, 'y', 1, b);
              b.append("–");
              // "y"
              formatField(e, 'y', 1, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "yMMMd": {
          switch (f) {
            case DAY: {
              // "MMM d–"
              formatField(s, 'M', 3, b);
              b.append(" ");
              formatField(s, 'd', 1, b);
              b.append("–");
              // "d፣ y"
              formatField(e, 'd', 1, b);
              b.append("፣ ");
              formatField(e, 'y', 1, b);
              return;
            }
            case YEAR: {
              // "MMM d፣ y – "
              formatField(s, 'M', 3, b);
              b.append(" ");
              formatField(s, 'd', 1, b);
              b.append("፣ ");
              formatField(s, 'y', 1, b);
              b.append(" – ");
              // "MMM d፣ y"
              formatField(e, 'M', 3, b);
              b.append(" ");
              formatField(e, 'd', 1, b);
              b.append("፣ ");
              formatField(e, 'y', 1, b);
              return;
            }
            case MONTH: {
              // "MMM d – "
              formatField(s, 'M', 3, b);
              b.append(" ");
              formatField(s, 'd', 1, b);
              b.append(" – ");
              // "MMM d፣ y"
              formatField(e, 'M', 3, b);
              b.append(" ");
              formatField(e, 'd', 1, b);
              b.append("፣ ");
              formatField(e, 'y', 1, b);
              return;
            }
            default: break;
          }
          break;
        }
        default: break;
      }
      // "{0} – {1}"
      formatSkeleton(k, s, b);
      b.append(" – ");
      formatSkeleton(k, e, b);
    }
  }

  protected void wrapTimeZoneGMT(StringBuilder b, boolean neg, int hours, int mins,
      boolean _short) {
    if (hours == 0 && mins == 0) {
      b.append("ጂ ኤም ቲ");
      return;
    }
    boolean emitMins = !_short || mins > 0;
    b.append("ጂ ኤም ቲ");
    if (neg) {
      b.append("-");
      zeroPad2(b, hours, _short ? 1 : 2);
      if (emitMins) {
        zeroPad2(b, mins, 2);
      }
    }
    else {
      b.append("+");
      zeroPad2(b, hours, _short ? 1 : 2);
      if (emitMins) {
        zeroPad2(b, mins, 2);
      }
    }
  }

  protected void wrapTimeZoneRegion(StringBuilder b, String region) {
    b.append(region);
    b.append(" ጊዜ");
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy