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

com.squarespace.cldr.dates._CalendarFormatter_ko 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 "ko"
 * See http://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table
 */
public class _CalendarFormatter_ko extends CalendarFormatterBase {
  public _CalendarFormatter_ko() {
    this.bundleId = CLDR.Locale.ko;
    this.firstDay = 1;
    this.minDays = 1;
    this.eras = new FieldVariants(
          new String[] {"BC", "AD"}, 
          new String[] {"BC", "AD"}, 
          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/4분기", "제 2/4분기", "제 3/4분기", "제 4/4분기"});
    this.quartersStandalone = new FieldVariants(
          new String[] {"1분기", "2분기", "3분기", "4분기"}, 
          new String[] {"1", "2", "3", "4"}, 
          new String[] {}, 
          new String[] {"제 1/4분기", "제 2/4분기", "제 3/4분기", "제 4/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[] {"AM", "PM"}, 
          new String[] {"AM", "PM"}, 
          new String[] {}, 
          new String[] {"오전", "오후"});
    this.dayPeriodsStandalone = new FieldVariants(
          new String[] {"AM", "PM"}, 
          new String[] {"AM", "PM"}, 
          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("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("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("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("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("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: {
        // "yy. M. d."
        formatField(d, 'y', 2, b);
        b.append(". ");
        formatField(d, 'M', 1, b);
        b.append(". ");
        formatField(d, 'd', 1, b);
        b.append(".");
        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: {
        // "a h:mm"
        formatField(d, 'a', 1, b);
        b.append(" ");
        formatField(d, 'h', 1, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        break;
      }
      case MEDIUM: {
        // "a h:mm:ss"
        formatField(d, 'a', 1, b);
        b.append(" ");
        formatField(d, 'h', 1, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        b.append(":");
        formatField(d, 's', 2, b);
        break;
      }
      case LONG: {
        // "a h시 m분 s초 z"
        formatField(d, 'a', 1, b);
        b.append(" ");
        formatField(d, 'h', 1, b);
        b.append("시 ");
        formatField(d, 'm', 1, b);
        b.append("분 ");
        formatField(d, 's', 1, b);
        b.append("초 ");
        formatField(d, 'z', 1, b);
        break;
      }
      case FULL: {
        // "a h시 m분 s초 zzzz"
        formatField(d, 'a', 1, b);
        b.append(" ");
        formatField(d, 'h', 1, b);
        b.append("시 ");
        formatField(d, 'm', 1, b);
        b.append("분 ");
        formatField(d, 's', 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);
        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);
        b.append(")");
        break;
      }
      case "EEEEd": {
        // Pattern: "d일 EEEE"
        formatField(d, 'd', 1, b);
        b.append("일 ");
        formatField(d, 'E', 4, b);
        break;
      }
      case "Ehm": {
        // Pattern: "(E) a h:mm"
        b.append("(");
        formatField(d, 'E', 1, b);
        b.append(") ");
        formatField(d, 'a', 1, b);
        b.append(" ");
        formatField(d, 'h', 1, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        break;
      }
      case "EHm": {
        // Pattern: "(E) HH:mm"
        b.append("(");
        formatField(d, 'E', 1, b);
        b.append(") ");
        formatField(d, 'H', 2, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        break;
      }
      case "Ehms": {
        // Pattern: "(E) a h:mm:ss"
        b.append("(");
        formatField(d, 'E', 1, b);
        b.append(") ");
        formatField(d, 'a', 1, b);
        b.append(" ");
        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"
        b.append("(");
        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: "G y년"
        formatField(d, 'G', 1, b);
        b.append(" ");
        formatField(d, 'y', 1, b);
        b.append("년");
        break;
      }
      case "GyMMM": {
        // Pattern: "G y년 MMM"
        formatField(d, 'G', 1, b);
        b.append(" ");
        formatField(d, 'y', 1, b);
        b.append("년 ");
        formatField(d, 'M', 3, b);
        break;
      }
      case "GyMMMd": {
        // Pattern: "G y년 MMM d일"
        formatField(d, 'G', 1, b);
        b.append(" ");
        formatField(d, 'y', 1, b);
        b.append("년 ");
        formatField(d, 'M', 3, b);
        b.append(" ");
        formatField(d, 'd', 1, b);
        b.append("일");
        break;
      }
      case "GyMMMEd": {
        // Pattern: "G y년 MMM d일 (E)"
        formatField(d, 'G', 1, b);
        b.append(" ");
        formatField(d, 'y', 1, b);
        b.append("년 ");
        formatField(d, 'M', 3, b);
        b.append(" ");
        formatField(d, 'd', 1, b);
        b.append("일 (");
        formatField(d, 'E', 1, b);
        b.append(")");
        break;
      }
      case "GyMMMEEEEd": {
        // Pattern: "G y년 MMM d일 EEEE"
        formatField(d, 'G', 1, b);
        b.append(" ");
        formatField(d, 'y', 1, b);
        b.append("년 ");
        formatField(d, 'M', 3, b);
        b.append(" ");
        formatField(d, 'd', 1, b);
        b.append("일 ");
        formatField(d, 'E', 4, b);
        break;
      }
      case "h": {
        // Pattern: "a h시"
        formatField(d, 'a', 1, b);
        b.append(" ");
        formatField(d, 'h', 1, b);
        b.append("시");
        break;
      }
      case "H": {
        // Pattern: "H시"
        formatField(d, 'H', 1, b);
        b.append("시");
        break;
      }
      case "HHmmss": {
        // 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 "hm": {
        // Pattern: "a h:mm"
        formatField(d, 'a', 1, b);
        b.append(" ");
        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: "a h:mm:ss"
        formatField(d, 'a', 1, b);
        b.append(" ");
        formatField(d, 'h', 1, b);
        b.append(":");
        formatField(d, 'm', 2, b);
        b.append(":");
        formatField(d, 's', 2, b);
        break;
      }
      case "Hms": {
        // Pattern: "H시 m분 s초"
        formatField(d, 'H', 1, b);
        b.append("시 ");
        formatField(d, 'm', 1, b);
        b.append("분 ");
        formatField(d, 's', 1, b);
        b.append("초");
        break;
      }
      case "hmsv": {
        // Pattern: "a h:mm:ss v"
        formatField(d, 'a', 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, 'v', 1, b);
        break;
      }
      case "Hmsv": {
        // Pattern: "H시 m분 s초 v"
        formatField(d, 'H', 1, b);
        b.append("시 ");
        formatField(d, 'm', 1, b);
        b.append("분 ");
        formatField(d, 's', 1, b);
        b.append("초 ");
        formatField(d, 'v', 1, b);
        break;
      }
      case "hmv": {
        // Pattern: "a h:mm v"
        formatField(d, 'a', 1, b);
        b.append(" ");
        formatField(d, 'h', 1, b);
        b.append(":");
        formatField(d, 'm', 2, 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: "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);
        b.append(".");
        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 "MEEEEd": {
        // Pattern: "M. d. EEEE"
        formatField(d, 'M', 1, b);
        b.append(". ");
        formatField(d, 'd', 1, b);
        b.append(". ");
        formatField(d, 'E', 4, 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);
        b.append("일");
        break;
      }
      case "MMMEd": {
        // Pattern: "MMM d일 (E)"
        formatField(d, 'M', 3, b);
        b.append(" ");
        formatField(d, 'd', 1, b);
        b.append("일 (");
        formatField(d, 'E', 1, b);
        b.append(")");
        break;
      }
      case "MMMEEEEd": {
        // Pattern: "MMM d일 EEEE"
        formatField(d, 'M', 3, b);
        b.append(" ");
        formatField(d, 'd', 1, b);
        b.append("일 ");
        formatField(d, 'E', 4, b);
        break;
      }
      case "MMMMd": {
        // Pattern: "MMMM d일"
        formatField(d, 'M', 4, b);
        b.append(" ");
        formatField(d, 'd', 1, b);
        b.append("일");
        break;
      }
      case "MMMMW-count-other": {
        // Pattern: "MMM W번째 주"
        formatField(d, 'M', 3, b);
        b.append(" ");
        formatField(d, 'W', 1, b);
        b.append("번째 주");
        break;
      }
      case "mmss": {
        // Pattern: "mm:ss"
        formatField(d, 'm', 2, b);
        b.append(":");
        formatField(d, 's', 2, 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);
        b.append("년");
        break;
      }
      case "yM": {
        // Pattern: "y. M."
        formatField(d, 'y', 1, b);
        b.append(". ");
        formatField(d, 'M', 1, b);
        b.append(".");
        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);
        b.append(".");
        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 "yMEEEEd": {
        // Pattern: "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;
      }
      case "yMM": {
        // Pattern: "y. M."
        formatField(d, 'y', 1, b);
        b.append(". ");
        formatField(d, 'M', 1, b);
        b.append(".");
        break;
      }
      case "yMMM": {
        // Pattern: "y년 MMM"
        formatField(d, 'y', 1, b);
        b.append("년 ");
        formatField(d, 'M', 3, b);
        break;
      }
      case "yMMMd": {
        // Pattern: "y년 MMM d일"
        formatField(d, 'y', 1, b);
        b.append("년 ");
        formatField(d, 'M', 3, b);
        b.append(" ");
        formatField(d, 'd', 1, b);
        b.append("일");
        break;
      }
      case "yMMMEd": {
        // Pattern: "y년 MMM d일 (E)"
        formatField(d, 'y', 1, b);
        b.append("년 ");
        formatField(d, 'M', 3, b);
        b.append(" ");
        formatField(d, 'd', 1, b);
        b.append("일 (");
        formatField(d, 'E', 1, b);
        b.append(")");
        break;
      }
      case "yMMMEEEEd": {
        // Pattern: "y년 MMM d일 EEEE"
        formatField(d, 'y', 1, b);
        b.append("년 ");
        formatField(d, 'M', 3, b);
        b.append(" ");
        formatField(d, 'd', 1, b);
        b.append("일 ");
        formatField(d, 'E', 4, b);
        break;
      }
      case "yMMMM": {
        // Pattern: "y년 MMMM"
        formatField(d, 'y', 1, b);
        b.append("년 ");
        formatField(d, 'M', 4, b);
        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 "hm": {
          switch (f) {
            case AM_PM: {
              // "a h:mm ~ "
              formatField(s, 'a', 1, b);
              b.append(" ");
              formatField(s, 'h', 1, b);
              b.append(":");
              formatField(s, 'm', 2, b);
              b.append(" ~ ");
              // "a h:mm"
              formatField(e, 'a', 1, b);
              b.append(" ");
              formatField(e, 'h', 1, b);
              b.append(":");
              formatField(e, 'm', 2, b);
              return;
            }
            case HOUR: {
              // "a h:mm~"
              formatField(s, 'a', 1, b);
              b.append(" ");
              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: {
              // "a h:mm~"
              formatField(s, 'a', 1, b);
              b.append(" ");
              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 "H": {
          switch (f) {
            case HOUR: {
              // "H ~ "
              formatField(s, 'H', 1, b);
              b.append(" ~ ");
              // "H시"
              formatField(e, 'H', 1, b);
              b.append("시");
              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);
              b.append(")");
              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);
              b.append(")");
              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);
              b.append(")");
              return;
            }
            default: break;
          }
          break;
        }
        case "yMEd": {
          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(") ~ ");
              // "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);
              b.append(")");
              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);
              b.append(")");
              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(") ~ ");
              // "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);
              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: {
              // "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);
              b.append(")");
              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);
              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);
              b.append(")");
              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);
              b.append(")");
              return;
            }
            default: break;
          }
          break;
        }
        case "hv": {
          switch (f) {
            case AM_PM: {
              // "a h시 ~ "
              formatField(s, 'a', 1, b);
              b.append(" ");
              formatField(s, 'h', 1, b);
              b.append("시 ~ ");
              // "a h시(v)"
              formatField(e, 'a', 1, b);
              b.append(" ");
              formatField(e, 'h', 1, b);
              b.append("시(");
              formatField(e, 'v', 1, b);
              b.append(")");
              return;
            }
            case HOUR: {
              // "a h시 ~ "
              formatField(s, 'a', 1, b);
              b.append(" ");
              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 "hmv": {
          switch (f) {
            case AM_PM: {
              // "a h:mm ~ "
              formatField(s, 'a', 1, b);
              b.append(" ");
              formatField(s, 'h', 1, b);
              b.append(":");
              formatField(s, 'm', 2, b);
              b.append(" ~ ");
              // "a h:mm v"
              formatField(e, 'a', 1, b);
              b.append(" ");
              formatField(e, 'h', 1, b);
              b.append(":");
              formatField(e, 'm', 2, b);
              b.append(" ");
              formatField(e, 'v', 1, b);
              return;
            }
            case HOUR: {
              // "a h:mm~"
              formatField(s, 'a', 1, b);
              b.append(" ");
              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);
              return;
            }
            case MINUTE: {
              // "a h:mm~"
              formatField(s, 'a', 1, b);
              b.append(" ");
              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);
              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;
        }
        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 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: {
              // "a h시 ~ "
              formatField(s, 'a', 1, b);
              b.append(" ");
              formatField(s, 'h', 1, b);
              b.append("시 ~ ");
              // "a h시"
              formatField(e, 'a', 1, b);
              b.append(" ");
              formatField(e, 'h', 1, b);
              b.append("시");
              return;
            }
            case HOUR: {
              // "a h시 ~ "
              formatField(s, 'a', 1, b);
              b.append(" ");
              formatField(s, 'h', 1, b);
              b.append("시 ~ ");
              // "h시"
              formatField(e, 'h', 1, b);
              b.append("시");
              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: {
              // "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 "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 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: {
              // "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 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(". ~ ");
              // "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;
            }
            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);
              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 "yMMMEEEEd": {
          switch (f) {
            case DAY: {
              // "y년 M월 d일 EEEE ~ "
              formatField(s, 'y', 1, b);
              b.append("년 ");
              formatField(s, 'M', 1, b);
              b.append("월 ");
              formatField(s, 'd', 1, b);
              b.append("일 ");
              formatField(s, 'E', 4, b);
              b.append(" ~ ");
              // "d일 EEEE"
              formatField(e, 'd', 1, b);
              b.append("일 ");
              formatField(e, 'E', 4, b);
              return;
            }
            case YEAR: {
              // "y년 M월 d일 EEEE ~ "
              formatField(s, 'y', 1, b);
              b.append("년 ");
              formatField(s, 'M', 1, b);
              b.append("월 ");
              formatField(s, 'd', 1, b);
              b.append("일 ");
              formatField(s, 'E', 4, b);
              b.append(" ~ ");
              // "y년 M월 d일 EEEE"
              formatField(e, 'y', 1, b);
              b.append("년 ");
              formatField(e, 'M', 1, b);
              b.append("월 ");
              formatField(e, 'd', 1, b);
              b.append("일 ");
              formatField(e, 'E', 4, b);
              return;
            }
            case MONTH: {
              // "y년 M월 d일 EEEE ~ "
              formatField(s, 'y', 1, b);
              b.append("년 ");
              formatField(s, 'M', 1, b);
              b.append("월 ");
              formatField(s, 'd', 1, b);
              b.append("일 ");
              formatField(s, 'E', 4, b);
              b.append(" ~ ");
              // "M월 d일 EEEE"
              formatField(e, 'M', 1, b);
              b.append("월 ");
              formatField(e, 'd', 1, b);
              b.append("일 ");
              formatField(e, 'E', 4, b);
              return;
            }
            default: break;
          }
          break;
        }
        case "yMMMM": {
          switch (f) {
            case YEAR: {
              // "y년 MMMM ~ "
              formatField(s, 'y', 1, b);
              b.append("년 ");
              formatField(s, 'M', 4, b);
              b.append(" ~ ");
              // "y년 MMMM"
              formatField(e, 'y', 1, b);
              b.append("년 ");
              formatField(e, 'M', 4, b);
              return;
            }
            case MONTH: {
              // "y년 MMMM ~ "
              formatField(s, 'y', 1, b);
              b.append("년 ");
              formatField(s, 'M', 4, b);
              b.append(" ~ ");
              // "MMMM"
              formatField(e, 'M', 4, b);
              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);
              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