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

com.squarespace.cldr.dates._CalendarFormatter_yue 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 "yue"
 * See http://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table
 */
public class _CalendarFormatter_yue extends CalendarFormatterBase {
  public _CalendarFormatter_yue() {
    this.bundleId = CLDR.Locale.yue;
    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[] {"1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"}, 
          new String[] {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"}, 
          new String[] {}, 
          new String[] {"1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"});
    this.monthsStandalone = new FieldVariants(
          new String[] {"1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"}, 
          new String[] {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"}, 
          new String[] {}, 
          new String[] {"1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"});
    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",   null,
        new TimeZoneNames.Name(null, "UTC", null)));
    } };

    this.metazoneNames = new HashMap() { {

      put("Acre", new TimeZoneNames("Acre", 
        new TimeZoneNames.Name("艾克時間", "艾克標準時間", "艾克夏令時間"),
        null));

      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("Almaty", new TimeZoneNames("Almaty", 
        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("Aqtau", new TimeZoneNames("Aqtau", 
        new TimeZoneNames.Name("阿克陶時間", "阿克陶標準時間", "阿克陶夏令時間"),
        null));

      put("Aqtobe", new TimeZoneNames("Aqtobe", 
        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("Casey", new TimeZoneNames("Casey", 
        new TimeZoneNames.Name(null, "凱西站時間", null),
        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("Guam", new TimeZoneNames("Guam", 
        new TimeZoneNames.Name(null, "關島標準時間", null),
        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("Lanka", new TimeZoneNames("Lanka", 
        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("Macau", new TimeZoneNames("Macau", 
        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("North_Mariana", new TimeZoneNames("North_Mariana", 
        new TimeZoneNames.Name(null, "北馬里亞納群島時間", null),
        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("Qyzylorda", new TimeZoneNames("Qyzylorda", 
        new TimeZoneNames.Name("克孜勒奧爾達時間", "克孜勒奧爾達標準時間", "克孜勒奧爾達夏令時間"),
        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: {
        // "y/M/d"
        formatField(d, 'y', 1, b);
        b.append("/");
        formatField(d, 'M', 1, b);
        b.append("/");
        formatField(d, 'd', 1, b);
        break;
      }
      case MEDIUM: {
        // "y年M月d日"
        formatField(d, 'y', 1, b);
        b.append("年");
        formatField(d, 'M', 1, b);
        b.append("月");
        formatField(d, 'd', 1, b);
        b.append("日");
        break;
      }
      case LONG: {
        // "y年M月d日"
        formatField(d, 'y', 1, b);
        b.append("年");
        formatField(d, 'M', 1, b);
        b.append("月");
        formatField(d, 'd', 1, b);
        b.append("日");
        break;
      }
      case FULL: {
        // "y年M月d日 EEEE"
        formatField(d, 'y', 1, b);
        b.append("年");
        formatField(d, 'M', 1, b);
        b.append("月");
        formatField(d, 'd', 1, b);
        b.append("日 ");
        formatField(d, 'E', 4, b);
        break;
      }
    }
  }

  @Override
  public void formatTime(CalendarFormat type, ZonedDateTime d, StringBuilder b) {
    if (type == null) {
      return;
    }
    switch (type) {
      case SHORT: {
        // "ah:mm"
        formatField(d, 'a', 1, b);
        formatField(d, 'h', 1, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        break;
      }
      case MEDIUM: {
        // "ah:mm:ss"
        formatField(d, 'a', 1, b);
        formatField(d, 'h', 1, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        b.append(":");
        formatField(d, 's', 2, b);
        break;
      }
      case LONG: {
        // "ah:mm:ss [z]"
        formatField(d, 'a', 1, b);
        formatField(d, 'h', 1, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        b.append(":");
        formatField(d, 's', 2, b);
        b.append(" [");
        formatField(d, 'z', 1, b);
        b.append("]");
        break;
      }
      case FULL: {
        // "ah:mm:ss [zzzz]"
        formatField(d, 'a', 1, b);
        formatField(d, 'h', 1, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        b.append(":");
        formatField(d, 's', 2, b);
        b.append(" [");
        formatField(d, 'z', 4, b);
        b.append("]");
        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);
        b.append("日");
        break;
      }
      case "E": {
        // Pattern: "ccc"
        formatField(d, 'c', 3, b);
        break;
      }
      case "Ed": {
        // Pattern: "d E"
        formatField(d, 'd', 1, b);
        b.append(" ");
        formatField(d, 'E', 1, b);
        break;
      }
      case "Ehm": {
        // Pattern: "E ah:mm"
        formatField(d, 'E', 1, b);
        b.append(" ");
        formatField(d, 'a', 1, b);
        formatField(d, 'h', 1, b);
        b.append(":");
        formatField(d, 'm', 2, 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 ah:mm:ss"
        formatField(d, 'E', 1, b);
        b.append(" ");
        formatField(d, 'a', 1, b);
        formatField(d, 'h', 1, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        b.append(":");
        formatField(d, 's', 2, 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: "Gy年"
        formatField(d, 'G', 1, b);
        formatField(d, 'y', 1, b);
        b.append("年");
        break;
      }
      case "GyMMM": {
        // Pattern: "Gy年M月"
        formatField(d, 'G', 1, b);
        formatField(d, 'y', 1, b);
        b.append("年");
        formatField(d, 'M', 1, b);
        b.append("月");
        break;
      }
      case "GyMMMd": {
        // Pattern: "Gy年M月d日"
        formatField(d, 'G', 1, b);
        formatField(d, 'y', 1, b);
        b.append("年");
        formatField(d, 'M', 1, b);
        b.append("月");
        formatField(d, 'd', 1, b);
        b.append("日");
        break;
      }
      case "GyMMMEd": {
        // Pattern: "Gy年M月d日 E"
        formatField(d, 'G', 1, b);
        formatField(d, 'y', 1, b);
        b.append("年");
        formatField(d, 'M', 1, b);
        b.append("月");
        formatField(d, 'd', 1, b);
        b.append("日 ");
        formatField(d, 'E', 1, b);
        break;
      }
      case "h": {
        // Pattern: "ah時"
        formatField(d, 'a', 1, b);
        formatField(d, 'h', 1, b);
        b.append("時");
        break;
      }
      case "H": {
        // Pattern: "H時"
        formatField(d, 'H', 1, b);
        b.append("時");
        break;
      }
      case "hm": {
        // Pattern: "ah:mm"
        formatField(d, 'a', 1, b);
        formatField(d, 'h', 1, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        break;
      }
      case "Hm": {
        // Pattern: "HH:mm"
        formatField(d, 'H', 2, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        break;
      }
      case "hms": {
        // Pattern: "ah:mm:ss"
        formatField(d, 'a', 1, b);
        formatField(d, 'h', 1, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        b.append(":");
        formatField(d, 's', 2, 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: "ah:mm:ss [v]"
        formatField(d, 'a', 1, b);
        formatField(d, 'h', 1, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        b.append(":");
        formatField(d, 's', 2, b);
        b.append(" [");
        formatField(d, 'v', 1, b);
        b.append("]");
        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);
        b.append("]");
        break;
      }
      case "hmv": {
        // Pattern: "ah:mm [v]"
        formatField(d, 'a', 1, b);
        formatField(d, 'h', 1, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        b.append(" [");
        formatField(d, 'v', 1, b);
        b.append("]");
        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);
        b.append("]");
        break;
      }
      case "M": {
        // Pattern: "M月"
        formatField(d, 'M', 1, b);
        b.append("月");
        break;
      }
      case "Md": {
        // Pattern: "M/d"
        formatField(d, 'M', 1, b);
        b.append("/");
        formatField(d, 'd', 1, b);
        break;
      }
      case "MEd": {
        // Pattern: "M/d(E)"
        formatField(d, 'M', 1, b);
        b.append("/");
        formatField(d, 'd', 1, b);
        b.append("(");
        formatField(d, 'E', 1, b);
        b.append(")");
        break;
      }
      case "MMdd": {
        // Pattern: "MM/dd"
        formatField(d, 'M', 2, b);
        b.append("/");
        formatField(d, 'd', 2, b);
        break;
      }
      case "MMM": {
        // Pattern: "LLL"
        formatField(d, 'L', 3, b);
        break;
      }
      case "MMMd": {
        // Pattern: "M月d日"
        formatField(d, 'M', 1, b);
        b.append("月");
        formatField(d, 'd', 1, b);
        b.append("日");
        break;
      }
      case "MMMEd": {
        // Pattern: "M月d日 E"
        formatField(d, 'M', 1, b);
        b.append("月");
        formatField(d, 'd', 1, b);
        b.append("日 ");
        formatField(d, 'E', 1, b);
        break;
      }
      case "MMMMd": {
        // Pattern: "M月d日"
        formatField(d, 'M', 1, b);
        b.append("月");
        formatField(d, 'd', 1, b);
        b.append("日");
        break;
      }
      case "MMMMW-count-other": {
        // Pattern: "M月第W個星期"
        formatField(d, 'M', 1, b);
        b.append("月第");
        formatField(d, 'W', 1, b);
        b.append("個星期");
        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);
        b.append("年");
        break;
      }
      case "yM": {
        // Pattern: "y/M"
        formatField(d, 'y', 1, b);
        b.append("/");
        formatField(d, 'M', 1, b);
        break;
      }
      case "yMd": {
        // Pattern: "y/M/d"
        formatField(d, 'y', 1, b);
        b.append("/");
        formatField(d, 'M', 1, b);
        b.append("/");
        formatField(d, 'd', 1, b);
        break;
      }
      case "yMEd": {
        // Pattern: "y/M/d(E)"
        formatField(d, 'y', 1, b);
        b.append("/");
        formatField(d, 'M', 1, b);
        b.append("/");
        formatField(d, 'd', 1, b);
        b.append("(");
        formatField(d, 'E', 1, b);
        b.append(")");
        break;
      }
      case "yMM": {
        // Pattern: "y/MM"
        formatField(d, 'y', 1, b);
        b.append("/");
        formatField(d, 'M', 2, b);
        break;
      }
      case "yMMM": {
        // Pattern: "y年M月"
        formatField(d, 'y', 1, b);
        b.append("年");
        formatField(d, 'M', 1, b);
        b.append("月");
        break;
      }
      case "yMMMd": {
        // Pattern: "y年M月d日"
        formatField(d, 'y', 1, b);
        b.append("年");
        formatField(d, 'M', 1, b);
        b.append("月");
        formatField(d, 'd', 1, b);
        b.append("日");
        break;
      }
      case "yMMMEd": {
        // Pattern: "y年M月d日 E"
        formatField(d, 'y', 1, b);
        b.append("年");
        formatField(d, 'M', 1, b);
        b.append("月");
        formatField(d, 'd', 1, b);
        b.append("日 ");
        formatField(d, 'E', 1, b);
        break;
      }
      case "yMMMM": {
        // Pattern: "y年M月"
        formatField(d, 'y', 1, b);
        b.append("年");
        formatField(d, 'M', 1, b);
        b.append("月");
        break;
      }
      case "yQQQ": {
        // Pattern: "y年QQQ"
        formatField(d, 'y', 1, b);
        b.append("年");
        formatField(d, 'Q', 3, b);
        break;
      }
      case "yQQQQ": {
        // Pattern: "y年QQQQ"
        formatField(d, 'y', 1, b);
        b.append("年");
        formatField(d, 'Q', 4, b);
        break;
      }
      case "yw-count-other": {
        // Pattern: "y年第w個星期"
        formatField(d, 'y', 1, b);
        b.append("年第");
        formatField(d, 'w', 1, b);
        b.append("個星期");
        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);
              b.append("日");
              return;
            }
            default: break;
          }
          break;
        }
        case "MMMM": {
          switch (f) {
            case MONTH: {
              // "LLLL至"
              formatField(s, 'L', 4, b);
              b.append("至");
              // "LLLL"
              formatField(e, 'L', 4, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "hm": {
          switch (f) {
            case AM_PM: {
              // "ah:mm至"
              formatField(s, 'a', 1, b);
              formatField(s, 'h', 1, b);
              b.append(":");
              formatField(s, 'm', 2, b);
              b.append("至");
              // "ah:mm"
              formatField(e, 'a', 1, b);
              formatField(e, 'h', 1, b);
              b.append(":");
              formatField(e, 'm', 2, b);
              return;
            }
            case HOUR: {
              // "ah:mm至"
              formatField(s, 'a', 1, b);
              formatField(s, 'h', 1, b);
              b.append(":");
              formatField(s, 'm', 2, b);
              b.append("至");
              // "h:mm"
              formatField(e, 'h', 1, b);
              b.append(":");
              formatField(e, 'm', 2, b);
              return;
            }
            case MINUTE: {
              // "ah:mm至"
              formatField(s, 'a', 1, b);
              formatField(s, 'h', 1, b);
              b.append(":");
              formatField(s, 'm', 2, b);
              b.append("至");
              // "h:mm"
              formatField(e, 'h', 1, b);
              b.append(":");
              formatField(e, 'm', 2, 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: {
              // "ah時至"
              formatField(s, 'a', 1, b);
              formatField(s, 'h', 1, b);
              b.append("時至");
              // "ah時"
              formatField(e, 'a', 1, b);
              formatField(e, 'h', 1, b);
              b.append("時");
              return;
            }
            case HOUR: {
              // "ah時至"
              formatField(s, 'a', 1, b);
              formatField(s, 'h', 1, b);
              b.append("時至");
              // "h時"
              formatField(e, 'h', 1, b);
              b.append("時");
              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: {
              // "y年M月d日E至"
              formatField(s, 'y', 1, b);
              b.append("年");
              formatField(s, 'M', 1, b);
              b.append("月");
              formatField(s, 'd', 1, b);
              b.append("日");
              formatField(s, 'E', 1, b);
              b.append("至");
              // "d日E"
              formatField(e, 'd', 1, b);
              b.append("日");
              formatField(e, 'E', 1, b);
              return;
            }
            case YEAR: {
              // "y年M月d日E至"
              formatField(s, 'y', 1, b);
              b.append("年");
              formatField(s, 'M', 1, b);
              b.append("月");
              formatField(s, 'd', 1, b);
              b.append("日");
              formatField(s, 'E', 1, b);
              b.append("至");
              // "y年M月d日E"
              formatField(e, 'y', 1, b);
              b.append("年");
              formatField(e, 'M', 1, b);
              b.append("月");
              formatField(e, 'd', 1, b);
              b.append("日");
              formatField(e, 'E', 1, b);
              return;
            }
            case MONTH: {
              // "y年M月d日E至"
              formatField(s, 'y', 1, b);
              b.append("年");
              formatField(s, 'M', 1, b);
              b.append("月");
              formatField(s, 'd', 1, b);
              b.append("日");
              formatField(s, 'E', 1, b);
              b.append("至");
              // "M月d日E"
              formatField(e, 'M', 1, b);
              b.append("月");
              formatField(e, 'd', 1, b);
              b.append("日");
              formatField(e, 'E', 1, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "yMEd": {
          switch (f) {
            case DAY: {
              // "d/M/y (E) 至 "
              formatField(s, 'd', 1, b);
              b.append("/");
              formatField(s, 'M', 1, b);
              b.append("/");
              formatField(s, 'y', 1, b);
              b.append(" (");
              formatField(s, 'E', 1, b);
              b.append(") 至 ");
              // "d/M/y (E)"
              formatField(e, 'd', 1, b);
              b.append("/");
              formatField(e, 'M', 1, b);
              b.append("/");
              formatField(e, 'y', 1, b);
              b.append(" (");
              formatField(e, 'E', 1, b);
              b.append(")");
              return;
            }
            case YEAR: {
              // "d/M/y (E) 至 "
              formatField(s, 'd', 1, b);
              b.append("/");
              formatField(s, 'M', 1, b);
              b.append("/");
              formatField(s, 'y', 1, b);
              b.append(" (");
              formatField(s, 'E', 1, b);
              b.append(") 至 ");
              // "d/M/y (E)"
              formatField(e, 'd', 1, b);
              b.append("/");
              formatField(e, 'M', 1, b);
              b.append("/");
              formatField(e, 'y', 1, b);
              b.append(" (");
              formatField(e, 'E', 1, b);
              b.append(")");
              return;
            }
            case MONTH: {
              // "d/M/y (E) 至 "
              formatField(s, 'd', 1, b);
              b.append("/");
              formatField(s, 'M', 1, b);
              b.append("/");
              formatField(s, 'y', 1, b);
              b.append(" (");
              formatField(s, 'E', 1, b);
              b.append(") 至 ");
              // "d/M/y (E)"
              formatField(e, 'd', 1, b);
              b.append("/");
              formatField(e, 'M', 1, b);
              b.append("/");
              formatField(e, 'y', 1, b);
              b.append(" (");
              formatField(e, 'E', 1, b);
              b.append(")");
              return;
            }
            default: break;
          }
          break;
        }
        case "MMM": {
          switch (f) {
            case MONTH: {
              // "LLL至"
              formatField(s, 'L', 3, b);
              b.append("至");
              // "LLL"
              formatField(e, 'L', 3, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "yMMM": {
          switch (f) {
            case YEAR: {
              // "y年M月至"
              formatField(s, 'y', 1, b);
              b.append("年");
              formatField(s, 'M', 1, b);
              b.append("月至");
              // "y年M月"
              formatField(e, 'y', 1, b);
              b.append("年");
              formatField(e, 'M', 1, b);
              b.append("月");
              return;
            }
            case MONTH: {
              // "y年M月至"
              formatField(s, 'y', 1, b);
              b.append("年");
              formatField(s, 'M', 1, b);
              b.append("月至");
              // "M月"
              formatField(e, 'M', 1, b);
              b.append("月");
              return;
            }
            default: break;
          }
          break;
        }
        case "M": {
          switch (f) {
            case MONTH: {
              // "M月至"
              formatField(s, 'M', 1, b);
              b.append("月至");
              // "M月"
              formatField(e, 'M', 1, b);
              b.append("月");
              return;
            }
            default: break;
          }
          break;
        }
        case "MEd": {
          switch (f) {
            case DAY: {
              // "d/M (E) 至 "
              formatField(s, 'd', 1, b);
              b.append("/");
              formatField(s, 'M', 1, b);
              b.append(" (");
              formatField(s, 'E', 1, b);
              b.append(") 至 ");
              // "d/M (E)"
              formatField(e, 'd', 1, b);
              b.append("/");
              formatField(e, 'M', 1, b);
              b.append(" (");
              formatField(e, 'E', 1, b);
              b.append(")");
              return;
            }
            case MONTH: {
              // "d/M (E) 至 "
              formatField(s, 'd', 1, b);
              b.append("/");
              formatField(s, 'M', 1, b);
              b.append(" (");
              formatField(s, 'E', 1, b);
              b.append(") 至 ");
              // "d/M (E)"
              formatField(e, 'd', 1, b);
              b.append("/");
              formatField(e, 'M', 1, b);
              b.append(" (");
              formatField(e, 'E', 1, b);
              b.append(")");
              return;
            }
            default: break;
          }
          break;
        }
        case "MMMEd": {
          switch (f) {
            case DAY: {
              // "M月d日E至"
              formatField(s, 'M', 1, b);
              b.append("月");
              formatField(s, 'd', 1, b);
              b.append("日");
              formatField(s, 'E', 1, b);
              b.append("至");
              // "d日E"
              formatField(e, 'd', 1, b);
              b.append("日");
              formatField(e, 'E', 1, b);
              return;
            }
            case MONTH: {
              // "M月d日E至"
              formatField(s, 'M', 1, b);
              b.append("月");
              formatField(s, 'd', 1, b);
              b.append("日");
              formatField(s, 'E', 1, b);
              b.append("至");
              // "M月d日E"
              formatField(e, 'M', 1, b);
              b.append("月");
              formatField(e, 'd', 1, b);
              b.append("日");
              formatField(e, 'E', 1, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "hv": {
          switch (f) {
            case AM_PM: {
              // "ah時至"
              formatField(s, 'a', 1, b);
              formatField(s, 'h', 1, b);
              b.append("時至");
              // "ah時 [v]"
              formatField(e, 'a', 1, b);
              formatField(e, 'h', 1, b);
              b.append("時 [");
              formatField(e, 'v', 1, b);
              b.append("]");
              return;
            }
            case HOUR: {
              // "ah時至"
              formatField(s, 'a', 1, b);
              formatField(s, 'h', 1, b);
              b.append("時至");
              // "h時 [v]"
              formatField(e, 'h', 1, b);
              b.append("時 [");
              formatField(e, 'v', 1, b);
              b.append("]");
              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);
              b.append("]");
              return;
            }
            default: break;
          }
          break;
        }
        case "hmv": {
          switch (f) {
            case AM_PM: {
              // "ah:mm至"
              formatField(s, 'a', 1, b);
              formatField(s, 'h', 1, b);
              b.append(":");
              formatField(s, 'm', 2, b);
              b.append("至");
              // "ah:mm [v]"
              formatField(e, 'a', 1, b);
              formatField(e, 'h', 1, b);
              b.append(":");
              formatField(e, 'm', 2, b);
              b.append(" [");
              formatField(e, 'v', 1, b);
              b.append("]");
              return;
            }
            case HOUR: {
              // "ah:mm至"
              formatField(s, 'a', 1, b);
              formatField(s, 'h', 1, b);
              b.append(":");
              formatField(s, 'm', 2, b);
              b.append("至");
              // "h:mm [v]"
              formatField(e, 'h', 1, b);
              b.append(":");
              formatField(e, 'm', 2, b);
              b.append(" [");
              formatField(e, 'v', 1, b);
              b.append("]");
              return;
            }
            case MINUTE: {
              // "ah:mm至"
              formatField(s, 'a', 1, b);
              formatField(s, 'h', 1, b);
              b.append(":");
              formatField(s, 'm', 2, b);
              b.append("至");
              // "h:mm [v]"
              formatField(e, 'h', 1, b);
              b.append(":");
              formatField(e, 'm', 2, b);
              b.append(" [");
              formatField(e, 'v', 1, b);
              b.append("]");
              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);
              b.append("]");
              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);
              b.append("]");
              return;
            }
            default: break;
          }
          break;
        }
        case "yMd": {
          switch (f) {
            case DAY: {
              // "y/M/d至"
              formatField(s, 'y', 1, b);
              b.append("/");
              formatField(s, 'M', 1, b);
              b.append("/");
              formatField(s, 'd', 1, b);
              b.append("至");
              // "y/M/d"
              formatField(e, 'y', 1, b);
              b.append("/");
              formatField(e, 'M', 1, b);
              b.append("/");
              formatField(e, 'd', 1, b);
              return;
            }
            case YEAR: {
              // "y/M/d至"
              formatField(s, 'y', 1, b);
              b.append("/");
              formatField(s, 'M', 1, b);
              b.append("/");
              formatField(s, 'd', 1, b);
              b.append("至");
              // "y/M/d"
              formatField(e, 'y', 1, b);
              b.append("/");
              formatField(e, 'M', 1, b);
              b.append("/");
              formatField(e, 'd', 1, b);
              return;
            }
            case MONTH: {
              // "y/M/d至"
              formatField(s, 'y', 1, b);
              b.append("/");
              formatField(s, 'M', 1, b);
              b.append("/");
              formatField(s, 'd', 1, b);
              b.append("至");
              // "y/M/d"
              formatField(e, 'y', 1, b);
              b.append("/");
              formatField(e, 'M', 1, b);
              b.append("/");
              formatField(e, 'd', 1, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "MMMd": {
          switch (f) {
            case DAY: {
              // "M月d日至"
              formatField(s, 'M', 1, b);
              b.append("月");
              formatField(s, 'd', 1, b);
              b.append("日至");
              // "d日"
              formatField(e, 'd', 1, b);
              b.append("日");
              return;
            }
            case MONTH: {
              // "M月d日至"
              formatField(s, 'M', 1, b);
              b.append("月");
              formatField(s, 'd', 1, b);
              b.append("日至");
              // "M月d日"
              formatField(e, 'M', 1, b);
              b.append("月");
              formatField(e, 'd', 1, b);
              b.append("日");
              return;
            }
            default: break;
          }
          break;
        }
        case "yM": {
          switch (f) {
            case YEAR: {
              // "y/M至"
              formatField(s, 'y', 1, b);
              b.append("/");
              formatField(s, 'M', 1, b);
              b.append("至");
              // "y/M"
              formatField(e, 'y', 1, b);
              b.append("/");
              formatField(e, 'M', 1, b);
              return;
            }
            case MONTH: {
              // "y/M至"
              formatField(s, 'y', 1, b);
              b.append("/");
              formatField(s, 'M', 1, b);
              b.append("至");
              // "y/M"
              formatField(e, 'y', 1, b);
              b.append("/");
              formatField(e, 'M', 1, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "yMMMM": {
          switch (f) {
            case YEAR: {
              // "y年M月至"
              formatField(s, 'y', 1, b);
              b.append("年");
              formatField(s, 'M', 1, b);
              b.append("月至");
              // "y年M月"
              formatField(e, 'y', 1, b);
              b.append("年");
              formatField(e, 'M', 1, b);
              b.append("月");
              return;
            }
            case MONTH: {
              // "y年M月至"
              formatField(s, 'y', 1, b);
              b.append("年");
              formatField(s, 'M', 1, b);
              b.append("月至");
              // "M月"
              formatField(e, 'M', 1, b);
              b.append("月");
              return;
            }
            default: break;
          }
          break;
        }
        case "Md": {
          switch (f) {
            case DAY: {
              // "M/d至"
              formatField(s, 'M', 1, b);
              b.append("/");
              formatField(s, 'd', 1, b);
              b.append("至");
              // "M/d"
              formatField(e, 'M', 1, b);
              b.append("/");
              formatField(e, 'd', 1, b);
              return;
            }
            case MONTH: {
              // "M/d至"
              formatField(s, 'M', 1, b);
              b.append("/");
              formatField(s, 'd', 1, b);
              b.append("至");
              // "M/d"
              formatField(e, 'M', 1, b);
              b.append("/");
              formatField(e, 'd', 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: {
              // "y年M月d日至"
              formatField(s, 'y', 1, b);
              b.append("年");
              formatField(s, 'M', 1, b);
              b.append("月");
              formatField(s, 'd', 1, b);
              b.append("日至");
              // "d日"
              formatField(e, 'd', 1, b);
              b.append("日");
              return;
            }
            case YEAR: {
              // "y年M月d日至"
              formatField(s, 'y', 1, b);
              b.append("年");
              formatField(s, 'M', 1, b);
              b.append("月");
              formatField(s, 'd', 1, b);
              b.append("日至");
              // "y年M月d日"
              formatField(e, 'y', 1, b);
              b.append("年");
              formatField(e, 'M', 1, b);
              b.append("月");
              formatField(e, 'd', 1, b);
              b.append("日");
              return;
            }
            case MONTH: {
              // "y年M月d日至"
              formatField(s, 'y', 1, b);
              b.append("年");
              formatField(s, 'M', 1, b);
              b.append("月");
              formatField(s, 'd', 1, b);
              b.append("日至");
              // "M月d日"
              formatField(e, 'M', 1, b);
              b.append("月");
              formatField(e, 'd', 1, b);
              b.append("日");
              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("GMT");
      return;
    }
    boolean emitMins = !_short || mins > 0;
    b.append("GMT");
    if (neg) {
      b.append("-");
      zeroPad2(b, hours, _short ? 1 : 2);
      if (emitMins) {
        b.append(":");
      }
      if (emitMins) {
        zeroPad2(b, mins, 2);
      }
    }
    else {
      b.append("+");
      zeroPad2(b, hours, _short ? 1 : 2);
      if (emitMins) {
        b.append(":");
      }
      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