<!-- ELK index_not_found_exception --> <!-- elk-index-not-found-exception --> *ELK* 中 *logstash* 一般都是以日期为单位保存日志,格式如下: ```conf output { elasticsearch { hosts => ["http://localhost:9200"] index => "logstash-%{+YYYY.MM.dd}" #user => "elastic" #password => "changeme" } } ``` 通过代码查询日志时,需要指定索引,不过没有找到像 *index pattern* 一样支持通配符匹配索引的 *API*,于是只好自己根据系统时间计算索引名。 ```java SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy.MM.dd"); String indexName = String.format("%s%s", indexPrefix, simpleDateFormat.format(new Date())); ``` 执行后在12点钟的时候报了如下错误: > type=index_not_found_exception, reason=no such index 怀疑是时区导致的,查了一下,果然如此。每天8天以前的数据是保存在前一天日期对应的索引中的。 找到问题就很好解决了,指定 `SimpleDateFormat` 的时区之后再执行格式化就可以了。 ```java SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy.MM.dd"); simpleDateFormat.setTimeZone(TimeZone.getTimeZone("Etc/GMT+0")); String indexName = String.format("%s%s", indexPrefix, simpleDateFormat.format(new Date())); ``` ## 附1. 查询 ES 错误日志数量的代码 ```java import cn.hutool.core.date.DateUtil; import me.liujiajia.job.entity.log.LogWarningParameter; import me.liujiajia.job.service.LogMessageService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.elasticsearch.client.RequestOptions; import org.elasticsearch.client.RestHighLevelClient; import org.elasticsearch.client.core.CountRequest; import org.elasticsearch.client.core.CountResponse; import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.builder.SearchSourceBuilder; import org.springframework.stereotype.Service; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.*; @RequiredArgsConstructor @Service @Slf4j public class LogMessageServiceImpl implements LogMessageService { private final RestHighLevelClient client; @Override public long logCount(LogWarningParameter parameter) throws IOException { if (parameter == null) return 0; String[] indices = getIndices(parameter.getIndexPrefix(), parameter.getMinutes()); if (indices.length == 0) return 0; BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery(); if (StringUtils.isNotEmpty(parameter.getLevel())) { queryBuilder.must(QueryBuilders.matchQuery("level", "ERROR")); } if (parameter.getMinutes() > 0) { queryBuilder.must(QueryBuilders.rangeQuery("@timestamp") .from(String.format("now-%dm", parameter.getMinutes()), true) .to("now", true)); } if (parameter.getKeywords() != null && parameter.getKeywords().size() > 0) { parameter.getKeywords().forEach(keyword -> queryBuilder.must(QueryBuilders.fuzzyQuery("message", keyword))); } SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); searchSourceBuilder.query(queryBuilder); CountRequest countRequest = new CountRequest(indices); countRequest.source(searchSourceBuilder); CountResponse countResponse = client.count(countRequest, RequestOptions.DEFAULT); return countResponse == null ? 0 : countResponse.getCount(); } private String[] getIndices(String indexPrefix, int minutes) { Date now = new Date(); Date fromTime = DateUtil.offsetMinute(now, -minutes); Set<String> result = new HashSet<>(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy.MM.dd"); simpleDateFormat.setTimeZone(TimeZone.getTimeZone("Etc/GMT+0")); while (fromTime.compareTo(now) < 0) { result.add(String.format("%s%s", indexPrefix, simpleDateFormat.format(fromTime))); fromTime = DateUtil.offsetDay(fromTime, 1); } result.add(String.format("%s%s", indexPrefix, simpleDateFormat.format(now))); return result.toArray(new String[result.size()]); } } ``` ## 附2. 可用 TimeZone 列表 摘自 [Joda-Time][3] (2021-03-17) . | Standard Offset | Canonical ID | Aliases | | --- | --- | --- | | `-12:00` | *Etc/GMT+12* | | | `-11:00` | *Etc/GMT+11* | | | `-11:00` | *Pacific/Midway* | | | `-11:00` | *Pacific/Niue* | | | `-11:00` | *Pacific/Pago_Pago* | Pacific/Samoa, US/Samoa | | `-10:00` | *America/Adak* | America/Atka, US/Aleutian | | `-10:00` | *Etc/GMT+10* | | | `-10:00` | *HST* | | | `-10:00` | *Pacific/Honolulu* | Pacific/Johnston, US/Hawaii | | `-10:00` | *Pacific/Rarotonga* | | | `-10:00` | *Pacific/Tahiti* | | | `-09:30` | *Pacific/Marquesas* | | | `-09:00` | *America/Anchorage* | US/Alaska | | `-09:00` | *America/Juneau* | | | `-09:00` | *America/Metlakatla* | | | `-09:00` | *America/Nome* | | | `-09:00` | *America/Sitka* | | | `-09:00` | *America/Yakutat* | | | `-09:00` | *Etc/GMT+9* | | | `-09:00` | *Pacific/Gambier* | | | `-08:00` | *America/Dawson* | | | `-08:00` | *America/Los_Angeles* | US/Pacific, US/Pacific-New | | `-08:00` | *America/Tijuana* | America/Ensenada, America/Santa_Isabel, Mexico/BajaNorte | | `-08:00` | *America/Vancouver* | Canada/Pacific | | `-08:00` | *America/Whitehorse* | Canada/Yukon | | `-08:00` | *Etc/GMT+8* | | | `-08:00` | *PST8PDT* | | | `-08:00` | *Pacific/Pitcairn* | | | `-07:00` | *America/Boise* | | | `-07:00` | *America/Cambridge_Bay* | | | `-07:00` | *America/Chihuahua* | | | `-07:00` | *America/Creston* | | | `-07:00` | *America/Dawson_Creek* | | | `-07:00` | *America/Denver* | America/Shiprock, Navajo, US/Mountain | | `-07:00` | *America/Edmonton* | Canada/Mountain | | `-07:00` | *America/Fort_Nelson* | | | `-07:00` | *America/Hermosillo* | | | `-07:00` | *America/Inuvik* | | | `-07:00` | *America/Mazatlan* | Mexico/BajaSur | | `-07:00` | *America/Ojinaga* | | | `-07:00` | *America/Phoenix* | US/Arizona | | `-07:00` | *America/Yellowknife* | | | `-07:00` | *Etc/GMT+7* | | | `-07:00` | *MST* | | | `-07:00` | *MST7MDT* | | | `-06:00` | *America/Bahia_Banderas* | | | `-06:00` | *America/Belize* | | | `-06:00` | *America/Chicago* | US/Central | | `-06:00` | *America/Costa_Rica* | | | `-06:00` | *America/El_Salvador* | | | `-06:00` | *America/Guatemala* | | | `-06:00` | *America/Indiana/Knox* | America/Knox_IN, US/Indiana-Starke | | `-06:00` | *America/Indiana/Tell_City* | | | `-06:00` | *America/Managua* | | | `-06:00` | *America/Matamoros* | | | `-06:00` | *America/Menominee* | | | `-06:00` | *America/Merida* | | | `-06:00` | *America/Mexico_City* | Mexico/General | | `-06:00` | *America/Monterrey* | | | `-06:00` | *America/North_Dakota/Beulah* | | | `-06:00` | *America/North_Dakota/Center* | | | `-06:00` | *America/North_Dakota/New_Salem* | | | `-06:00` | *America/Rainy_River* | | | `-06:00` | *America/Rankin_Inlet* | | | `-06:00` | *America/Regina* | Canada/Saskatchewan | | `-06:00` | *America/Resolute* | | | `-06:00` | *America/Swift_Current* | | | `-06:00` | *America/Tegucigalpa* | | | `-06:00` | *America/Winnipeg* | Canada/Central | | `-06:00` | *CST6CDT* | | | `-06:00` | *Etc/GMT+6* | | | `-06:00` | *Pacific/Easter* | Chile/EasterIsland | | `-06:00` | *Pacific/Galapagos* | | | `-05:00` | *America/Atikokan* | America/Coral_Harbour | | `-05:00` | *America/Bogota* | | | `-05:00` | *America/Cancun* | | | `-05:00` | *America/Cayman* | | | `-05:00` | *America/Detroit* | US/Michigan | | `-05:00` | *America/Eirunepe* | | | `-05:00` | *America/Grand_Turk* | | | `-05:00` | *America/Guayaquil* | | | `-05:00` | *America/Havana* | Cuba | | `-05:00` | *America/Indiana/Indianapolis* | America/Fort_Wayne, America/Indianapolis, US/East-Indiana | | `-05:00` | *America/Indiana/Marengo* | | | `-05:00` | *America/Indiana/Petersburg* | | | `-05:00` | *America/Indiana/Vevay* | | | `-05:00` | *America/Indiana/Vincennes* | | | `-05:00` | *America/Indiana/Winamac* | | | `-05:00` | *America/Iqaluit* | | | `-05:00` | *America/Jamaica* | Jamaica | | `-05:00` | *America/Kentucky/Louisville* | America/Louisville | | `-05:00` | *America/Kentucky/Monticello* | | | `-05:00` | *America/Lima* | | | `-05:00` | *America/Nassau* | | | `-05:00` | *America/New_York* | US/Eastern | | `-05:00` | *America/Nipigon* | | | `-05:00` | *America/Panama* | | | `-05:00` | *America/Pangnirtung* | | | `-05:00` | *America/Port-au-Prince* | | | `-05:00` | *America/Rio_Branco* | America/Porto_Acre, Brazil/Acre | | `-05:00` | *America/Thunder_Bay* | | | `-05:00` | *America/Toronto* | America/Montreal, Canada/Eastern | | `-05:00` | *EST* | | | `-05:00` | *EST5EDT* | | | `-05:00` | *Etc/GMT+5* | | | `-04:00` | *America/Anguilla* | | | `-04:00` | *America/Antigua* | | | `-04:00` | *America/Aruba* | | | `-04:00` | *America/Asuncion* | | | `-04:00` | *America/Barbados* | | | `-04:00` | *America/Blanc-Sablon* | | | `-04:00` | *America/Boa_Vista* | | | `-04:00` | *America/Campo_Grande* | | | `-04:00` | *America/Caracas* | | | `-04:00` | *America/Cuiaba* | | | `-04:00` | *America/Curacao* | | | `-04:00` | *America/Dominica* | | | `-04:00` | *America/Glace_Bay* | | | `-04:00` | *America/Goose_Bay* | | | `-04:00` | *America/Grenada* | | | `-04:00` | *America/Guadeloupe* | | | `-04:00` | *America/Guyana* | | | `-04:00` | *America/Halifax* | Canada/Atlantic | | `-04:00` | *America/Kralendijk* | | | `-04:00` | *America/La_Paz* | | | `-04:00` | *America/Lower_Princes* | | | `-04:00` | *America/Manaus* | Brazil/West | | `-04:00` | *America/Marigot* | | | `-04:00` | *America/Martinique* | | | `-04:00` | *America/Moncton* | | | `-04:00` | *America/Montserrat* | | | `-04:00` | *America/Port_of_Spain* | America/Virgin | | `-04:00` | *America/Porto_Velho* | | | `-04:00` | *America/Puerto_Rico* | | | `-04:00` | *America/Santiago* | Chile/Continental | | `-04:00` | *America/Santo_Domingo* | | | `-04:00` | *America/St_Barthelemy* | | | `-04:00` | *America/St_Kitts* | | | `-04:00` | *America/St_Lucia* | | | `-04:00` | *America/St_Thomas* | | | `-04:00` | *America/St_Vincent* | | | `-04:00` | *America/Thule* | | | `-04:00` | *America/Tortola* | | | `-04:00` | *Atlantic/Bermuda* | | | `-04:00` | *Etc/GMT+4* | | | `-03:30` | *America/St_Johns* | Canada/Newfoundland | | `-03:00` | *America/Araguaina* | | | `-03:00` | *America/Argentina/Buenos_Aires* | America/Buenos_Aires | | `-03:00` | *America/Argentina/Catamarca* | America/Argentina/ComodRivadavia, America/Catamarca | | `-03:00` | *America/Argentina/Cordoba* | America/Cordoba, America/Rosario | | `-03:00` | *America/Argentina/Jujuy* | America/Jujuy | | `-03:00` | *America/Argentina/La_Rioja* | | | `-03:00` | *America/Argentina/Mendoza* | America/Mendoza | | `-03:00` | *America/Argentina/Rio_Gallegos* | | | `-03:00` | *America/Argentina/Salta* | | | `-03:00` | *America/Argentina/San_Juan* | | | `-03:00` | *America/Argentina/San_Luis* | | | `-03:00` | *America/Argentina/Tucuman* | | | `-03:00` | *America/Argentina/Ushuaia* | | | `-03:00` | *America/Bahia* | | | `-03:00` | *America/Belem* | | | `-03:00` | *America/Cayenne* | | | `-03:00` | *America/Fortaleza* | | | `-03:00` | *America/Godthab* | | | `-03:00` | *America/Maceio* | | | `-03:00` | *America/Miquelon* | | | `-03:00` | *America/Montevideo* | | | `-03:00` | *America/Paramaribo* | | | `-03:00` | *America/Punta_Arenas* | | | `-03:00` | *America/Recife* | | | `-03:00` | *America/Santarem* | | | `-03:00` | *America/Sao_Paulo* | Brazil/East | | `-03:00` | *Antarctica/Palmer* | | | `-03:00` | *Antarctica/Rothera* | | | `-03:00` | *Atlantic/Stanley* | | | `-03:00` | *Etc/GMT+3* | | | `-02:00` | *America/Noronha* | Brazil/DeNoronha | | `-02:00` | *Atlantic/South_Georgia* | | | `-02:00` | *Etc/GMT+2* | | | `-01:00` | *America/Scoresbysund* | | | `-01:00` | *Atlantic/Azores* | | | `-01:00` | *Atlantic/Cape_Verde* | | | `-01:00` | *Etc/GMT+1* | | | `+00:00` | *Africa/Abidjan* | Africa/Timbuktu | | `+00:00` | *Africa/Accra* | | | `+00:00` | *Africa/Bamako* | | | `+00:00` | *Africa/Banjul* | | | `+00:00` | *Africa/Bissau* | | | `+00:00` | *Africa/Casablanca* | | | `+00:00` | *Africa/Conakry* | | | `+00:00` | *Africa/Dakar* | | | `+00:00` | *Africa/El_Aaiun* | | | `+00:00` | *Africa/Freetown* | | | `+00:00` | *Africa/Lome* | | | `+00:00` | *Africa/Monrovia* | | | `+00:00` | *Africa/Nouakchott* | | | `+00:00` | *Africa/Ouagadougou* | | | `+00:00` | *America/Danmarkshavn* | | | `+00:00` | *Antarctica/Troll* | | | `+00:00` | *Atlantic/Canary* | | | `+00:00` | *Atlantic/Faroe* | Atlantic/Faeroe | | `+00:00` | *Atlantic/Madeira* | | | `+00:00` | *Atlantic/Reykjavik* | Iceland | | `+00:00` | *Atlantic/St_Helena* | | | `+00:00` | *Etc/GMT* | Etc/GMT+0, Etc/GMT-0, Etc/GMT0, Etc/Greenwich, GMT, GMT+0, GMT-0, GMT0, Greenwich | | `+00:00` | *Etc/UCT* | UCT | | `+00:00` | *Etc/UTC* | Etc/Universal, Etc/Zulu, Universal, Zulu | | `+00:00` | *Europe/Dublin* | Eire | | `+00:00` | *Europe/Guernsey* | | | `+00:00` | *Europe/Isle_of_Man* | | | `+00:00` | *Europe/Jersey* | | | `+00:00` | *Europe/Lisbon* | Portugal | | `+00:00` | *Europe/London* | Europe/Belfast, GB, GB-Eire | | `+00:00` | *UTC* | | | `+00:00` | *WET* | | | `+01:00` | *Africa/Algiers* | | | `+01:00` | *Africa/Bangui* | | | `+01:00` | *Africa/Brazzaville* | | | `+01:00` | *Africa/Ceuta* | | | `+01:00` | *Africa/Douala* | | | `+01:00` | *Africa/Kinshasa* | | | `+01:00` | *Africa/Lagos* | | | `+01:00` | *Africa/Libreville* | | | `+01:00` | *Africa/Luanda* | | | `+01:00` | *Africa/Malabo* | | | `+01:00` | *Africa/Ndjamena* | | | `+01:00` | *Africa/Niamey* | | | `+01:00` | *Africa/Porto-Novo* | | | `+01:00` | *Africa/Sao_Tome* | | | `+01:00` | *Africa/Tunis* | | | `+02:00` | *Africa/Windhoek* | | | `+01:00` | *Arctic/Longyearbyen* | | | `+01:00` | *CET* | | | `+01:00` | *Etc/GMT-1* | | | `+01:00` | *Europe/Amsterdam* | | | `+01:00` | *Europe/Andorra* | | | `+01:00` | *Europe/Belgrade* | | | `+01:00` | *Europe/Berlin* | | | `+01:00` | *Europe/Bratislava* | | | `+01:00` | *Europe/Brussels* | | | `+01:00` | *Europe/Budapest* | | | `+01:00` | *Europe/Busingen* | | | `+01:00` | *Europe/Copenhagen* | | | `+01:00` | *Europe/Gibraltar* | | | `+01:00` | *Europe/Ljubljana* | | | `+01:00` | *Europe/Luxembourg* | | | `+01:00` | *Europe/Madrid* | | | `+01:00` | *Europe/Malta* | | | `+01:00` | *Europe/Monaco* | | | `+01:00` | *Europe/Oslo* | Atlantic/Jan_Mayen | | `+01:00` | *Europe/Paris* | | | `+01:00` | *Europe/Podgorica* | | | `+01:00` | *Europe/Prague* | | | `+01:00` | *Europe/Rome* | | | `+01:00` | *Europe/San_Marino* | | | `+01:00` | *Europe/Sarajevo* | | | `+01:00` | *Europe/Skopje* | | | `+01:00` | *Europe/Stockholm* | | | `+01:00` | *Europe/Tirane* | | | `+01:00` | *Europe/Vaduz* | | | `+01:00` | *Europe/Vatican* | | | `+01:00` | *Europe/Vienna* | | | `+01:00` | *Europe/Warsaw* | Poland | | `+01:00` | *Europe/Zagreb* | | | `+01:00` | *Europe/Zurich* | | | `+01:00` | *MET* | | | `+02:00` | *Africa/Blantyre* | | | `+02:00` | *Africa/Bujumbura* | | | `+02:00` | *Africa/Cairo* | Egypt | | `+02:00` | *Africa/Gaborone* | | | `+02:00` | *Africa/Harare* | | | `+02:00` | *Africa/Johannesburg* | | | `+02:00` | *Africa/Khartoum* | | | `+02:00` | *Africa/Kigali* | | | `+02:00` | *Africa/Lubumbashi* | | | `+02:00` | *Africa/Lusaka* | | | `+02:00` | *Africa/Maputo* | | | `+02:00` | *Africa/Maseru* | | | `+02:00` | *Africa/Mbabane* | | | `+02:00` | *Africa/Tripoli* | Libya | | `+02:00` | *Asia/Amman* | | | `+02:00` | *Asia/Beirut* | | | `+02:00` | *Asia/Damascus* | | | `+02:00` | *Asia/Famagusta* | | | `+02:00` | *Asia/Gaza* | | | `+02:00` | *Asia/Hebron* | | | `+02:00` | *Asia/Jerusalem* | Asia/Tel_Aviv, Israel | | `+02:00` | *Asia/Nicosia* | | | `+02:00` | *EET* | | | `+02:00` | *Etc/GMT-2* | | | `+02:00` | *Europe/Athens* | | | `+02:00` | *Europe/Bucharest* | | | `+02:00` | *Europe/Chisinau* | Europe/Tiraspol | | `+02:00` | *Europe/Helsinki* | | | `+02:00` | *Europe/Kaliningrad* | | | `+02:00` | *Europe/Kiev* | | | `+02:00` | *Europe/Mariehamn* | | | `+02:00` | *Europe/Nicosia* | | | `+02:00` | *Europe/Riga* | | | `+02:00` | *Europe/Sofia* | | | `+02:00` | *Europe/Tallinn* | | | `+02:00` | *Europe/Uzhgorod* | | | `+02:00` | *Europe/Vilnius* | | | `+02:00` | *Europe/Zaporozhye* | | | `+03:00` | *Africa/Addis_Ababa* | | | `+03:00` | *Africa/Asmara* | | | `+03:00` | *Africa/Dar_es_Salaam* | | | `+03:00` | *Africa/Djibouti* | | | `+03:00` | *Africa/Juba* | | | `+03:00` | *Africa/Kampala* | | | `+03:00` | *Africa/Mogadishu* | | | `+03:00` | *Africa/Nairobi* | Africa/Asmera | | `+03:00` | *Antarctica/Syowa* | | | `+03:00` | *Asia/Aden* | | | `+03:00` | *Asia/Baghdad* | | | `+03:00` | *Asia/Bahrain* | | | `+03:00` | *Asia/Istanbul* | | | `+03:00` | *Asia/Kuwait* | | | `+03:00` | *Asia/Qatar* | | | `+03:00` | *Asia/Riyadh* | | | `+03:00` | *Etc/GMT-3* | | | `+03:00` | *Europe/Istanbul* | Turkey | | `+03:00` | *Europe/Kirov* | | | `+03:00` | *Europe/Minsk* | | | `+03:00` | *Europe/Moscow* | W-SU | | `+03:00` | *Europe/Simferopol* | | | `+03:00` | *Indian/Antananarivo* | | | `+03:00` | *Indian/Comoro* | | | `+03:00` | *Indian/Mayotte* | | | `+03:30` | *Asia/Tehran* | Iran | | `+04:00` | *Asia/Baku* | | | `+04:00` | *Asia/Dubai* | | | `+04:00` | *Asia/Muscat* | | | `+04:00` | *Asia/Tbilisi* | | | `+04:00` | *Asia/Yerevan* | | | `+04:00` | *Etc/GMT-4* | | | `+04:00` | *Europe/Astrakhan* | | | `+04:00` | *Europe/Samara* | | | `+04:00` | *Europe/Saratov* | | | `+04:00` | *Europe/Ulyanovsk* | | | `+04:00` | *Europe/Volgograd* | | | `+04:00` | *Indian/Mahe* | | | `+04:00` | *Indian/Mauritius* | | | `+04:00` | *Indian/Reunion* | | | `+04:30` | *Asia/Kabul* | | | `+05:00` | *Antarctica/Mawson* | | | `+05:00` | *Asia/Aqtau* | | | `+05:00` | *Asia/Aqtobe* | | | `+05:00` | *Asia/Ashgabat* | Asia/Ashkhabad | | `+05:00` | *Asia/Atyrau* | | | `+05:00` | *Asia/Dushanbe* | | | `+05:00` | *Asia/Karachi* | | | `+05:00` | *Asia/Oral* | | | `+05:00` | *Asia/Samarkand* | | | `+05:00` | *Asia/Tashkent* | | | `+05:00` | *Asia/Yekaterinburg* | | | `+05:00` | *Etc/GMT-5* | | | `+05:00` | *Indian/Kerguelen* | | | `+05:00` | *Indian/Maldives* | | | `+05:30` | *Asia/Colombo* | | | `+05:30` | *Asia/Kolkata* | Asia/Calcutta | | `+05:45` | *Asia/Kathmandu* | Asia/Katmandu | | `+06:00` | *Antarctica/Vostok* | | | `+06:00` | *Asia/Almaty* | | | `+06:00` | *Asia/Bishkek* | | | `+06:00` | *Asia/Dhaka* | Asia/Dacca | | `+06:00` | *Asia/Omsk* | | | `+06:00` | *Asia/Qyzylorda* | | | `+06:00` | *Asia/Thimphu* | Asia/Thimbu | | `+06:00` | *Asia/Urumqi* | Asia/Kashgar | | `+06:00` | *Etc/GMT-6* | | | `+06:00` | *Indian/Chagos* | | | `+06:30` | *Asia/Yangon* | Asia/Rangoon | | `+06:30` | *Indian/Cocos* | | | `+07:00` | *Antarctica/Davis* | | | `+07:00` | *Asia/Bangkok* | | | `+07:00` | *Asia/Barnaul* | | | `+07:00` | *Asia/Ho_Chi_Minh* | Asia/Saigon | | `+07:00` | *Asia/Hovd* | | | `+07:00` | *Asia/Jakarta* | | | `+07:00` | *Asia/Krasnoyarsk* | | | `+07:00` | *Asia/Novokuznetsk* | | | `+07:00` | *Asia/Novosibirsk* | | | `+07:00` | *Asia/Phnom_Penh* | | | `+07:00` | *Asia/Pontianak* | | | `+07:00` | *Asia/Tomsk* | | | `+07:00` | *Asia/Vientiane* | | | `+07:00` | *Etc/GMT-7* | | | `+07:00` | *Indian/Christmas* | | | `+08:00` | *Antarctica/Casey* | | | `+08:00` | *Asia/Brunei* | | | `+08:00` | *Asia/Choibalsan* | | | `+08:00` | *Asia/Hong_Kong* | Hongkong | | `+08:00` | *Asia/Irkutsk* | | | `+08:00` | *Asia/Kuala_Lumpur* | | | `+08:00` | *Asia/Kuching* | | | `+08:00` | *Asia/Macau* | Asia/Macao | | `+08:00` | *Asia/Makassar* | Asia/Ujung_Pandang | | `+08:00` | *Asia/Manila* | | | `+08:00` | *Asia/Shanghai* | Asia/Chongqing, Asia/Chungking, Asia/Harbin, PRC | | `+08:00` | *Asia/Singapore* | Singapore | | `+08:00` | *Asia/Taipei* | ROC | | `+08:00` | *Asia/Ulaanbaatar* | Asia/Ulan_Bator | | `+08:00` | *Australia/Perth* | Australia/West | | `+08:00` | *Etc/GMT-8* | | | `+08:45` | *Australia/Eucla* | | | `+09:00` | *Asia/Chita* | | | `+09:00` | *Asia/Dili* | | | `+09:00` | *Asia/Jayapura* | | | `+09:00` | *Asia/Khandyga* | | | `+09:00` | *Asia/Pyongyang* | | | `+09:00` | *Asia/Seoul* | ROK | | `+09:00` | *Asia/Tokyo* | Japan | | `+09:00` | *Asia/Yakutsk* | | | `+09:00` | *Etc/GMT-9* | | | `+09:00` | *Pacific/Palau* | | | `+09:30` | *Australia/Adelaide* | Australia/South | | `+09:30` | *Australia/Broken_Hill* | Australia/Yancowinna | | `+09:30` | *Australia/Darwin* | Australia/North | | `+10:00` | *Antarctica/DumontDUrville* | | | `+10:00` | *Asia/Ust-Nera* | | | `+10:00` | *Asia/Vladivostok* | | | `+10:00` | *Australia/Brisbane* | Australia/Queensland | | `+10:00` | *Australia/Currie* | | | `+10:00` | *Australia/Hobart* | Australia/Tasmania | | `+10:00` | *Australia/Lindeman* | | | `+10:00` | *Australia/Melbourne* | Australia/Victoria | | `+10:00` | *Australia/Sydney* | Australia/ACT, Australia/Canberra, Australia/NSW | | `+10:00` | *Etc/GMT-10* | | | `+10:00` | *Pacific/Chuuk* | Pacific/Truk, Pacific/Yap | | `+10:00` | *Pacific/Guam* | | | `+10:00` | *Pacific/Port_Moresby* | | | `+10:00` | *Pacific/Saipan* | | | `+10:30` | *Australia/Lord_Howe* | Australia/LHI | | `+11:00` | *Antarctica/Macquarie* | | | `+11:00` | *Asia/Magadan* | | | `+11:00` | *Asia/Sakhalin* | | | `+11:00` | *Asia/Srednekolymsk* | | | `+11:00` | *Etc/GMT-11* | | | `+11:00` | *Pacific/Bougainville* | | | `+11:00` | *Pacific/Efate* | | | `+11:00` | *Pacific/Guadalcanal* | | | `+11:00` | *Pacific/Kosrae* | | | `+11:00` | *Pacific/Norfolk* | | | `+11:00` | *Pacific/Noumea* | | | `+11:00` | *Pacific/Pohnpei* | Pacific/Ponape | | `+12:00` | *Antarctica/McMurdo* | | | `+12:00` | *Asia/Anadyr* | | | `+12:00` | *Asia/Kamchatka* | | | `+12:00` | *Etc/GMT-12* | | | `+12:00` | *Pacific/Auckland* | Antarctica/South_Pole, NZ | | `+12:00` | *Pacific/Fiji* | | | `+12:00` | *Pacific/Funafuti* | | | `+12:00` | *Pacific/Kwajalein* | Kwajalein | | `+12:00` | *Pacific/Majuro* | | | `+12:00` | *Pacific/Nauru* | | | `+12:00` | *Pacific/Tarawa* | | | `+12:00` | *Pacific/Wake* | | | `+12:00` | *Pacific/Wallis* | | | `+12:45` | *Pacific/Chatham* | NZ-CHAT | | `+13:00` | *Etc/GMT-13* | | | `+13:00` | *Pacific/Apia* | | | `+13:00` | *Pacific/Enderbury* | | | `+13:00` | *Pacific/Fakaofo* | | | `+13:00` | *Pacific/Tongatapu* | | | `+14:00` | *Etc/GMT-14* | | | `+14:00` | *Pacific/Kiritimati* | | ## 参考 1. [java SimpleDateFormat设置时区格式化时间][1] 2. [国际时区 TimeZone ID列表][2] 3. [oda-Time - Java data and time API - Time Zones][3] [1]:https://blog.csdn.net/mqdxiaoxiao/article/details/90317330 (java SimpleDateFormat设置时区格式化时间) [2]:https://blog.csdn.net/programmer_sir/article/details/8726630 (国际时区 TimeZone ID列表) [3]:https://www.joda.org/joda-time/timezones.html (Joda-Time - Java data and time API - Time Zones) Loading... 版权声明:本文为博主「佳佳」的原创文章,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://www.liujiajia.me/2021/3/17/elk-index-not-found-exception 提交