Java 8 – Display all Zones and its Offset using ZoneId and ZoneOffset

In this articles, we will discuss how to get all Zones and its corresponding Offset information using ZoneId and ZoneOffset

Display all Zones and its Offset:

  • Alphabetically Sorted Zones and its corresponding Offset
  • Reverse-order Sorted Offset and its corresponding Zones

1. Alphabetically Sorted zones and its Offset :

  • First we will use ZoneId.getAvailableZoneIds(); static method to get all available zones which returns in the form of Set<String>
  • Iterate through Zones and get its corresponding Offset and store these information in HashMap with,
    • Zone as Key
    • Offset as Value
  • Finally, sort Zones alphabetically and store it in LinkedHashMap as it will maintain insertion-order
  • Pretty print Offset/Zone information to console

DisplayAllZoneIdAndOffset.java

package in.bench.resources.zoneddatetime.sorting;

import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;

public class DisplayAllZoneIdAndOffset {

	// main() method
	public static void main(String[] args) {

		// 1. Java 8 Date/Time API - All zone and offset information
		System.out.println("Alphabetically Sorted Zones and its corresponding Offset :- \n");


		// 2. get all Zone information using ZoneId
		Set<String> zones = ZoneId.getAvailableZoneIds();


		// 3. get Zone with it Offset in LinkedHashMap
		Map<String, String> linkedHashMap = getZonesAndItsOffsetInMap(zones);


		// 3.1 print to console
		linkedHashMap.forEach((key, value) -> System.out.println(value + "\t" + key));
	}


	/**
	 * This method is used to get Zones and its Offset as Key-Value pair in LinkedHashMap
	 * to maintain insertion-order
	 * 
	 * @param zones
	 * @return
	 */
	private static Map<String, String> getZonesAndItsOffsetInMap(Set<String> zones) {

		// 1. Create HashMap object to store Zone and Offset
		Map<String, String> hashMap = new HashMap<>();


		// 2. Iterate all Zones and get Offset Id
		for(String zone : zones) {

			// 2.1 form ZoneId
			ZoneId zoneId = ZoneId.of(zone);


			// 2.2 form Zone Offset
			ZoneOffset zoneOffset = zoneId.getRules().getOffset(LocalDateTime.now());


			// 2.2 put zone and offset into hashMap
			hashMap.put(zone, zoneOffset.getId().replaceAll("Z", "+00:00"));
		}


		// 3. Create LinkedhashMap for storing sorted values of Zones
		Map<String, String> linkedHashMap = new LinkedHashMap<>();


		// 3.1 Sort hashMap on the basis of Key (Zones)
		hashMap // original source
		.entrySet() // get entry set
		.stream() // get stream
		.sorted(Map.Entry.comparingByKey()) // ascending-order sorting of Zones
		.forEachOrdered(c -> linkedHashMap.put(c.getKey(), c.getValue())); // maintains insertion-order


		// 3.2 return linkedHashMap;
		return linkedHashMap;
	}
}

Output:

Alphabetically Sorted Zones and its corresponding Offset :- 

+00:00	Africa/Abidjan
+00:00	Africa/Accra
+03:00	Africa/Addis_Ababa
+01:00	Africa/Algiers
+03:00	Africa/Asmara
+03:00	Africa/Asmera
+00:00	Africa/Bamako
+01:00	Africa/Bangui
+00:00	Africa/Banjul
+00:00	Africa/Bissau
+02:00	Africa/Blantyre
+01:00	Africa/Brazzaville
+02:00	Africa/Bujumbura
+02:00	Africa/Cairo
+01:00	Africa/Casablanca
+02:00	Africa/Ceuta
+00:00	Africa/Conakry
+00:00	Africa/Dakar
+03:00	Africa/Dar_es_Salaam
+03:00	Africa/Djibouti
+01:00	Africa/Douala
+01:00	Africa/El_Aaiun
+00:00	Africa/Freetown
+02:00	Africa/Gaborone
+02:00	Africa/Harare
+02:00	Africa/Johannesburg
+02:00	Africa/Juba
+03:00	Africa/Kampala
+02:00	Africa/Khartoum
+02:00	Africa/Kigali
+01:00	Africa/Kinshasa
+01:00	Africa/Lagos
+01:00	Africa/Libreville
+00:00	Africa/Lome
+01:00	Africa/Luanda
+02:00	Africa/Lubumbashi
+02:00	Africa/Lusaka
+01:00	Africa/Malabo
+02:00	Africa/Maputo
+02:00	Africa/Maseru
+02:00	Africa/Mbabane
+03:00	Africa/Mogadishu
+00:00	Africa/Monrovia
+03:00	Africa/Nairobi
+01:00	Africa/Ndjamena
+01:00	Africa/Niamey
+00:00	Africa/Nouakchott
+00:00	Africa/Ouagadougou
+01:00	Africa/Porto-Novo
+00:00	Africa/Sao_Tome
+00:00	Africa/Timbuktu
+02:00	Africa/Tripoli
+01:00	Africa/Tunis
+02:00	Africa/Windhoek
-09:00	America/Adak
-08:00	America/Anchorage
-04:00	America/Anguilla
-04:00	America/Antigua
-03:00	America/Araguaina
-03:00	America/Argentina/Buenos_Aires
-03:00	America/Argentina/Catamarca
-03:00	America/Argentina/ComodRivadavia
-03:00	America/Argentina/Cordoba
-03:00	America/Argentina/Jujuy
-03:00	America/Argentina/La_Rioja
-03:00	America/Argentina/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
-04:00	America/Aruba
-04:00	America/Asuncion
-05:00	America/Atikokan
-09:00	America/Atka
-03:00	America/Bahia
-05:00	America/Bahia_Banderas
-04:00	America/Barbados
-03:00	America/Belem
-06:00	America/Belize
-04:00	America/Blanc-Sablon
-04:00	America/Boa_Vista
-05:00	America/Bogota
-06:00	America/Boise
-03:00	America/Buenos_Aires
-06:00	America/Cambridge_Bay
-04:00	America/Campo_Grande
-05:00	America/Cancun
-04:00	America/Caracas
-03:00	America/Catamarca
-03:00	America/Cayenne
-05:00	America/Cayman
-05:00	America/Chicago
-06:00	America/Chihuahua
-05:00	America/Coral_Harbour
-03:00	America/Cordoba
-06:00	America/Costa_Rica
-07:00	America/Creston
-04:00	America/Cuiaba
-04:00	America/Curacao
+00:00	America/Danmarkshavn
-07:00	America/Dawson
-07:00	America/Dawson_Creek
-06:00	America/Denver
-04:00	America/Detroit
-04:00	America/Dominica
-06:00	America/Edmonton
-05:00	America/Eirunepe
-06:00	America/El_Salvador
-07:00	America/Ensenada
-07:00	America/Fort_Nelson
-04:00	America/Fort_Wayne
-03:00	America/Fortaleza
-03:00	America/Glace_Bay
-02:00	America/Godthab
-03:00	America/Goose_Bay
-04:00	America/Grand_Turk
-04:00	America/Grenada
-04:00	America/Guadeloupe
-06:00	America/Guatemala
-05:00	America/Guayaquil
-04:00	America/Guyana
-03:00	America/Halifax
-04:00	America/Havana
-07:00	America/Hermosillo
-04:00	America/Indiana/Indianapolis
-05:00	America/Indiana/Knox
-04:00	America/Indiana/Marengo
-04:00	America/Indiana/Petersburg
-05:00	America/Indiana/Tell_City
-04:00	America/Indiana/Vevay
-04:00	America/Indiana/Vincennes
-04:00	America/Indiana/Winamac
-04:00	America/Indianapolis
-06:00	America/Inuvik
-04:00	America/Iqaluit
-05:00	America/Jamaica
-03:00	America/Jujuy
-08:00	America/Juneau
-04:00	America/Kentucky/Louisville
-04:00	America/Kentucky/Monticello
-05:00	America/Knox_IN
-04:00	America/Kralendijk
-04:00	America/La_Paz
-05:00	America/Lima
-07:00	America/Los_Angeles
-04:00	America/Louisville
-04:00	America/Lower_Princes
-03:00	America/Maceio
-06:00	America/Managua
-04:00	America/Manaus
-04:00	America/Marigot
-04:00	America/Martinique
-05:00	America/Matamoros
-06:00	America/Mazatlan
-03:00	America/Mendoza
-05:00	America/Menominee
-05:00	America/Merida
-08:00	America/Metlakatla
-05:00	America/Mexico_City
-02:00	America/Miquelon
-03:00	America/Moncton
-05:00	America/Monterrey
-03:00	America/Montevideo
-04:00	America/Montreal
-04:00	America/Montserrat
-04:00	America/Nassau
-04:00	America/New_York
-04:00	America/Nipigon
-08:00	America/Nome
-02:00	America/Noronha
-05:00	America/North_Dakota/Beulah
-05:00	America/North_Dakota/Center
-05:00	America/North_Dakota/New_Salem
-02:00	America/Nuuk
-06:00	America/Ojinaga
-05:00	America/Panama
-04:00	America/Pangnirtung
-03:00	America/Paramaribo
-07:00	America/Phoenix
-04:00	America/Port-au-Prince
-04:00	America/Port_of_Spain
-05:00	America/Porto_Acre
-04:00	America/Porto_Velho
-04:00	America/Puerto_Rico
-03:00	America/Punta_Arenas
-05:00	America/Rainy_River
-05:00	America/Rankin_Inlet
-03:00	America/Recife
-06:00	America/Regina
-05:00	America/Resolute
-05:00	America/Rio_Branco
-03:00	America/Rosario
-07:00	America/Santa_Isabel
-03:00	America/Santarem
-04:00	America/Santiago
-04:00	America/Santo_Domingo
-03:00	America/Sao_Paulo
+00:00	America/Scoresbysund
-06:00	America/Shiprock
-08:00	America/Sitka
-04:00	America/St_Barthelemy
-02:30	America/St_Johns
-04:00	America/St_Kitts
-04:00	America/St_Lucia
-04:00	America/St_Thomas
-04:00	America/St_Vincent
-06:00	America/Swift_Current
-06:00	America/Tegucigalpa
-03:00	America/Thule
-04:00	America/Thunder_Bay
-07:00	America/Tijuana
-04:00	America/Toronto
-04:00	America/Tortola
-07:00	America/Vancouver
-04:00	America/Virgin
-07:00	America/Whitehorse
-05:00	America/Winnipeg
-08:00	America/Yakutat
-06:00	America/Yellowknife
+11:00	Antarctica/Casey
+07:00	Antarctica/Davis
+10:00	Antarctica/DumontDUrville
+10:00	Antarctica/Macquarie
+05:00	Antarctica/Mawson
+12:00	Antarctica/McMurdo
-03:00	Antarctica/Palmer
-03:00	Antarctica/Rothera
+12:00	Antarctica/South_Pole
+03:00	Antarctica/Syowa
+02:00	Antarctica/Troll
+06:00	Antarctica/Vostok
+02:00	Arctic/Longyearbyen
+03:00	Asia/Aden
+06:00	Asia/Almaty
+03:00	Asia/Amman
+12:00	Asia/Anadyr
+05:00	Asia/Aqtau
+05:00	Asia/Aqtobe
+05:00	Asia/Ashgabat
+05:00	Asia/Ashkhabad
+05:00	Asia/Atyrau
+03:00	Asia/Baghdad
+03:00	Asia/Bahrain
+04:00	Asia/Baku
+07:00	Asia/Bangkok
+07:00	Asia/Barnaul
+03:00	Asia/Beirut
+06:00	Asia/Bishkek
+08:00	Asia/Brunei
+05:30	Asia/Calcutta
+09:00	Asia/Chita
+08:00	Asia/Choibalsan
+08:00	Asia/Chongqing
+08:00	Asia/Chungking
+05:30	Asia/Colombo
+06:00	Asia/Dacca
+03:00	Asia/Damascus
+06:00	Asia/Dhaka
+09:00	Asia/Dili
+04:00	Asia/Dubai
+05:00	Asia/Dushanbe
+03:00	Asia/Famagusta
+03:00	Asia/Gaza
+08:00	Asia/Harbin
+03:00	Asia/Hebron
+07:00	Asia/Ho_Chi_Minh
+08:00	Asia/Hong_Kong
+07:00	Asia/Hovd
+08:00	Asia/Irkutsk
+03:00	Asia/Istanbul
+07:00	Asia/Jakarta
+09:00	Asia/Jayapura
+03:00	Asia/Jerusalem
+04:30	Asia/Kabul
+12:00	Asia/Kamchatka
+05:00	Asia/Karachi
+06:00	Asia/Kashgar
+05:45	Asia/Kathmandu
+05:45	Asia/Katmandu
+09:00	Asia/Khandyga
+05:30	Asia/Kolkata
+07:00	Asia/Krasnoyarsk
+08:00	Asia/Kuala_Lumpur
+08:00	Asia/Kuching
+03:00	Asia/Kuwait
+08:00	Asia/Macao
+08:00	Asia/Macau
+11:00	Asia/Magadan
+08:00	Asia/Makassar
+08:00	Asia/Manila
+04:00	Asia/Muscat
+03:00	Asia/Nicosia
+07:00	Asia/Novokuznetsk
+07:00	Asia/Novosibirsk
+06:00	Asia/Omsk
+05:00	Asia/Oral
+07:00	Asia/Phnom_Penh
+07:00	Asia/Pontianak
+09:00	Asia/Pyongyang
+03:00	Asia/Qatar
+06:00	Asia/Qostanay
+05:00	Asia/Qyzylorda
+06:30	Asia/Rangoon
+03:00	Asia/Riyadh
+07:00	Asia/Saigon
+11:00	Asia/Sakhalin
+05:00	Asia/Samarkand
+09:00	Asia/Seoul
+08:00	Asia/Shanghai
+08:00	Asia/Singapore
+11:00	Asia/Srednekolymsk
+08:00	Asia/Taipei
+05:00	Asia/Tashkent
+04:00	Asia/Tbilisi
+04:30	Asia/Tehran
+03:00	Asia/Tel_Aviv
+06:00	Asia/Thimbu
+06:00	Asia/Thimphu
+09:00	Asia/Tokyo
+07:00	Asia/Tomsk
+08:00	Asia/Ujung_Pandang
+08:00	Asia/Ulaanbaatar
+08:00	Asia/Ulan_Bator
+06:00	Asia/Urumqi
+10:00	Asia/Ust-Nera
+07:00	Asia/Vientiane
+10:00	Asia/Vladivostok
+09:00	Asia/Yakutsk
+06:30	Asia/Yangon
+05:00	Asia/Yekaterinburg
+04:00	Asia/Yerevan
+00:00	Atlantic/Azores
-03:00	Atlantic/Bermuda
+01:00	Atlantic/Canary
-01:00	Atlantic/Cape_Verde
+01:00	Atlantic/Faeroe
+01:00	Atlantic/Faroe
+02:00	Atlantic/Jan_Mayen
+01:00	Atlantic/Madeira
+00:00	Atlantic/Reykjavik
-02:00	Atlantic/South_Georgia
+00:00	Atlantic/St_Helena
-03:00	Atlantic/Stanley
+10:00	Australia/ACT
+09:30	Australia/Adelaide
+10:00	Australia/Brisbane
+09:30	Australia/Broken_Hill
+10:00	Australia/Canberra
+10:00	Australia/Currie
+09:30	Australia/Darwin
+08:45	Australia/Eucla
+10:00	Australia/Hobart
+10:30	Australia/LHI
+10:00	Australia/Lindeman
+10:30	Australia/Lord_Howe
+10:00	Australia/Melbourne
+10:00	Australia/NSW
+09:30	Australia/North
+08:00	Australia/Perth
+10:00	Australia/Queensland
+09:30	Australia/South
+10:00	Australia/Sydney
+10:00	Australia/Tasmania
+10:00	Australia/Victoria
+08:00	Australia/West
+09:30	Australia/Yancowinna
-05:00	Brazil/Acre
-02:00	Brazil/DeNoronha
-03:00	Brazil/East
-04:00	Brazil/West
+02:00	CET
-05:00	CST6CDT
-03:00	Canada/Atlantic
-05:00	Canada/Central
-04:00	Canada/Eastern
-06:00	Canada/Mountain
-02:30	Canada/Newfoundland
-07:00	Canada/Pacific
-06:00	Canada/Saskatchewan
-07:00	Canada/Yukon
-04:00	Chile/Continental
-06:00	Chile/EasterIsland
-04:00	Cuba
+03:00	EET
-04:00	EST5EDT
+02:00	Egypt
+01:00	Eire
+00:00	Etc/GMT
+00:00	Etc/GMT+0
-01:00	Etc/GMT+1
-10:00	Etc/GMT+10
-11:00	Etc/GMT+11
-12:00	Etc/GMT+12
-02:00	Etc/GMT+2
-03:00	Etc/GMT+3
-04:00	Etc/GMT+4
-05:00	Etc/GMT+5
-06:00	Etc/GMT+6
-07:00	Etc/GMT+7
-08:00	Etc/GMT+8
-09:00	Etc/GMT+9
+00:00	Etc/GMT-0
+01:00	Etc/GMT-1
+10:00	Etc/GMT-10
+11:00	Etc/GMT-11
+12:00	Etc/GMT-12
+13:00	Etc/GMT-13
+14:00	Etc/GMT-14
+02:00	Etc/GMT-2
+03:00	Etc/GMT-3
+04:00	Etc/GMT-4
+05:00	Etc/GMT-5
+06:00	Etc/GMT-6
+07:00	Etc/GMT-7
+08:00	Etc/GMT-8
+09:00	Etc/GMT-9
+00:00	Etc/GMT0
+00:00	Etc/Greenwich
+00:00	Etc/UCT
+00:00	Etc/UTC
+00:00	Etc/Universal
+00:00	Etc/Zulu
+02:00	Europe/Amsterdam
+02:00	Europe/Andorra
+04:00	Europe/Astrakhan
+03:00	Europe/Athens
+01:00	Europe/Belfast
+02:00	Europe/Belgrade
+02:00	Europe/Berlin
+02:00	Europe/Bratislava
+02:00	Europe/Brussels
+03:00	Europe/Bucharest
+02:00	Europe/Budapest
+02:00	Europe/Busingen
+03:00	Europe/Chisinau
+02:00	Europe/Copenhagen
+01:00	Europe/Dublin
+02:00	Europe/Gibraltar
+01:00	Europe/Guernsey
+03:00	Europe/Helsinki
+01:00	Europe/Isle_of_Man
+03:00	Europe/Istanbul
+01:00	Europe/Jersey
+02:00	Europe/Kaliningrad
+03:00	Europe/Kiev
+03:00	Europe/Kirov
+01:00	Europe/Lisbon
+02:00	Europe/Ljubljana
+01:00	Europe/London
+02:00	Europe/Luxembourg
+02:00	Europe/Madrid
+02:00	Europe/Malta
+03:00	Europe/Mariehamn
+03:00	Europe/Minsk
+02:00	Europe/Monaco
+03:00	Europe/Moscow
+03:00	Europe/Nicosia
+02:00	Europe/Oslo
+02:00	Europe/Paris
+02:00	Europe/Podgorica
+02:00	Europe/Prague
+03:00	Europe/Riga
+02:00	Europe/Rome
+04:00	Europe/Samara
+02:00	Europe/San_Marino
+02:00	Europe/Sarajevo
+04:00	Europe/Saratov
+03:00	Europe/Simferopol
+02:00	Europe/Skopje
+03:00	Europe/Sofia
+02:00	Europe/Stockholm
+03:00	Europe/Tallinn
+02:00	Europe/Tirane
+03:00	Europe/Tiraspol
+04:00	Europe/Ulyanovsk
+03:00	Europe/Uzhgorod
+02:00	Europe/Vaduz
+02:00	Europe/Vatican
+02:00	Europe/Vienna
+03:00	Europe/Vilnius
+03:00	Europe/Volgograd
+02:00	Europe/Warsaw
+02:00	Europe/Zagreb
+03:00	Europe/Zaporozhye
+02:00	Europe/Zurich
+01:00	GB
+01:00	GB-Eire
+00:00	GMT
+00:00	GMT0
+00:00	Greenwich
+08:00	Hongkong
+00:00	Iceland
+03:00	Indian/Antananarivo
+06:00	Indian/Chagos
+07:00	Indian/Christmas
+06:30	Indian/Cocos
+03:00	Indian/Comoro
+05:00	Indian/Kerguelen
+04:00	Indian/Mahe
+05:00	Indian/Maldives
+04:00	Indian/Mauritius
+03:00	Indian/Mayotte
+04:00	Indian/Reunion
+04:30	Iran
+03:00	Israel
-05:00	Jamaica
+09:00	Japan
+12:00	Kwajalein
+02:00	Libya
+02:00	MET
-06:00	MST7MDT
-07:00	Mexico/BajaNorte
-06:00	Mexico/BajaSur
-05:00	Mexico/General
+12:00	NZ
+12:45	NZ-CHAT
-06:00	Navajo
+08:00	PRC
-07:00	PST8PDT
+13:00	Pacific/Apia
+12:00	Pacific/Auckland
+11:00	Pacific/Bougainville
+12:45	Pacific/Chatham
+10:00	Pacific/Chuuk
-06:00	Pacific/Easter
+11:00	Pacific/Efate
+13:00	Pacific/Enderbury
+13:00	Pacific/Fakaofo
+12:00	Pacific/Fiji
+12:00	Pacific/Funafuti
-06:00	Pacific/Galapagos
-09:00	Pacific/Gambier
+11:00	Pacific/Guadalcanal
+10:00	Pacific/Guam
-10:00	Pacific/Honolulu
-10:00	Pacific/Johnston
+13:00	Pacific/Kanton
+14:00	Pacific/Kiritimati
+11:00	Pacific/Kosrae
+12:00	Pacific/Kwajalein
+12:00	Pacific/Majuro
-09:30	Pacific/Marquesas
-11:00	Pacific/Midway
+12:00	Pacific/Nauru
-11:00	Pacific/Niue
+11:00	Pacific/Norfolk
+11:00	Pacific/Noumea
-11:00	Pacific/Pago_Pago
+09:00	Pacific/Palau
-08:00	Pacific/Pitcairn
+11:00	Pacific/Pohnpei
+11:00	Pacific/Ponape
+10:00	Pacific/Port_Moresby
-10:00	Pacific/Rarotonga
+10:00	Pacific/Saipan
-11:00	Pacific/Samoa
-10:00	Pacific/Tahiti
+12:00	Pacific/Tarawa
+13:00	Pacific/Tongatapu
+10:00	Pacific/Truk
+12:00	Pacific/Wake
+12:00	Pacific/Wallis
+10:00	Pacific/Yap
+02:00	Poland
+01:00	Portugal
+09:00	ROK
+08:00	Singapore
-04:00	SystemV/AST4
-03:00	SystemV/AST4ADT
-06:00	SystemV/CST6
-05:00	SystemV/CST6CDT
-05:00	SystemV/EST5
-04:00	SystemV/EST5EDT
-10:00	SystemV/HST10
-07:00	SystemV/MST7
-06:00	SystemV/MST7MDT
-08:00	SystemV/PST8
-07:00	SystemV/PST8PDT
-09:00	SystemV/YST9
-08:00	SystemV/YST9YDT
+03:00	Turkey
+00:00	UCT
-08:00	US/Alaska
-09:00	US/Aleutian
-07:00	US/Arizona
-05:00	US/Central
-04:00	US/East-Indiana
-04:00	US/Eastern
-10:00	US/Hawaii
-05:00	US/Indiana-Starke
-04:00	US/Michigan
-06:00	US/Mountain
-07:00	US/Pacific
-11:00	US/Samoa
+00:00	UTC
+00:00	Universal
+03:00	W-SU
+01:00	WET
+00:00	Zulu

2. Reverse-order Sorted Offset and its Zones :

  • First we will use ZoneId.getAvailableZoneIds(); static method to get all available zones which returns in the form of Set<String>
  • Iterate through Zones and get its corresponding Offset and store these information in HashMap with,
    • Zone as Key
    • Offset as Value
  • Finally, sort Offset in reverse-order and store it in LinkedHashMap as it will maintain insertion-order
  • Pretty print Offset/Zone information to console

DisplayAllZoneIdAndOffset2.java

package in.bench.resources.zoneddatetime.sorting;

import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.util.Comparator;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;

public class DisplayAllZoneIdAndOffset2 {

	// main() method
	public static void main(String[] args) {

		// 1. Java 8 Date/Time API - All zone and offset information
		System.out.println("Reverse-order sorted Offset and its corresponding Zones :- \n");


		// 2. get all Zone information using ZoneId
		Set<String> zones = ZoneId.getAvailableZoneIds();


		// 3. get Zone with it Offset in LinkedHashMap
		Map<String, String> linkedHashMap = getZonesAndItsOffsetInMap(zones);


		// 3.1 print to console
		linkedHashMap.forEach((key, value) -> System.out.println(value + "\t" + key));
	}


	/**
	 * This method is used to get Zones and its Offset as Key-Value pair in LinkedHashMap
	 * to maintain insertion-order
	 * 
	 * @param zones
	 * @return
	 */
	private static Map<String, String> getZonesAndItsOffsetInMap(Set<String> zones) {

		// 1. Create HashMap object to store Zone and Offset
		Map<String, String> hashMap = new HashMap<>();


		// 2. Iterate all Zones and get Offset Id
		for(String zone : zones) {

			// 2.1 form ZoneId
			ZoneId zoneId = ZoneId.of(zone);


			// 2.2 form Zone Offset
			ZoneOffset zoneOffset = zoneId.getRules().getOffset(LocalDateTime.now());


			// 2.2 put zone and offset into hashMap
			hashMap.put(zone, zoneOffset.getId().replaceAll("Z", "+00:00"));
		}


		// 3. Create LinkedhashMap for storing reverse sorted values of OffSet
		Map<String, String> linkedHashMap = new LinkedHashMap<>();


		// 3.1 Reverse Sort hashMap on the basis of Value (Offset)
		hashMap // original source
		.entrySet() // get entry set
		.stream() // get stream
		.sorted(Map.Entry.comparingByValue(Comparator.reverseOrder())) // reverse-sorting of Offset
		.forEachOrdered(c -> linkedHashMap.put(c.getKey(), c.getValue())); // maintains insertion-order


		// 3.2 return linkedHashMap;
		return linkedHashMap;
	}
}

Output:

Reverse-order sorted Offset and its corresponding Zones :- 

-12:00	Etc/GMT+12
-11:00	Pacific/Pago_Pago
-11:00	Pacific/Samoa
-11:00	Pacific/Niue
-11:00	US/Samoa
-11:00	Etc/GMT+11
-11:00	Pacific/Midway
-10:00	Pacific/Honolulu
-10:00	Pacific/Rarotonga
-10:00	Pacific/Tahiti
-10:00	Pacific/Johnston
-10:00	US/Hawaii
-10:00	SystemV/HST10
-10:00	Etc/GMT+10
-09:30	Pacific/Marquesas
-09:00	Etc/GMT+9
-09:00	Pacific/Gambier
-09:00	America/Atka
-09:00	SystemV/YST9
-09:00	America/Adak
-09:00	US/Aleutian
-08:00	Etc/GMT+8
-08:00	US/Alaska
-08:00	America/Juneau
-08:00	America/Metlakatla
-08:00	America/Yakutat
-08:00	Pacific/Pitcairn
-08:00	America/Sitka
-08:00	America/Anchorage
-08:00	SystemV/PST8
-08:00	America/Nome
-08:00	SystemV/YST9YDT
-07:00	Canada/Yukon
-07:00	Etc/GMT+7
-07:00	US/Arizona
-07:00	America/Dawson_Creek
-07:00	Canada/Pacific
-07:00	PST8PDT
-07:00	SystemV/MST7
-07:00	America/Dawson
-07:00	Mexico/BajaNorte
-07:00	America/Tijuana
-07:00	America/Creston
-07:00	America/Hermosillo
-07:00	America/Santa_Isabel
-07:00	America/Vancouver
-07:00	America/Ensenada
-07:00	America/Phoenix
-07:00	America/Whitehorse
-07:00	America/Fort_Nelson
-07:00	SystemV/PST8PDT
-07:00	America/Los_Angeles
-07:00	US/Pacific
-06:00	America/El_Salvador
-06:00	America/Guatemala
-06:00	America/Belize
-06:00	America/Managua
-06:00	America/Tegucigalpa
-06:00	Etc/GMT+6
-06:00	Pacific/Easter
-06:00	Mexico/BajaSur
-06:00	America/Regina
-06:00	America/Denver
-06:00	Pacific/Galapagos
-06:00	America/Yellowknife
-06:00	America/Swift_Current
-06:00	America/Inuvik
-06:00	America/Mazatlan
-06:00	America/Boise
-06:00	America/Costa_Rica
-06:00	MST7MDT
-06:00	SystemV/CST6
-06:00	America/Chihuahua
-06:00	America/Ojinaga
-06:00	Chile/EasterIsland
-06:00	US/Mountain
-06:00	America/Edmonton
-06:00	Canada/Mountain
-06:00	America/Cambridge_Bay
-06:00	Navajo
-06:00	SystemV/MST7MDT
-06:00	Canada/Saskatchewan
-06:00	America/Shiprock
-05:00	America/Panama
-05:00	America/Chicago
-05:00	America/Eirunepe
-05:00	Etc/GMT+5
-05:00	Mexico/General
-05:00	America/Porto_Acre
-05:00	America/Guayaquil
-05:00	America/Rankin_Inlet
-05:00	US/Central
-05:00	America/Rainy_River
-05:00	America/Indiana/Knox
-05:00	America/North_Dakota/Beulah
-05:00	America/Monterrey
-05:00	America/Jamaica
-05:00	America/Atikokan
-05:00	America/Coral_Harbour
-05:00	America/North_Dakota/Center
-05:00	America/Cayman
-05:00	America/Indiana/Tell_City
-05:00	America/Mexico_City
-05:00	America/Matamoros
-05:00	CST6CDT
-05:00	America/Knox_IN
-05:00	America/Bogota
-05:00	America/Menominee
-05:00	America/Resolute
-05:00	SystemV/EST5
-05:00	Canada/Central
-05:00	Brazil/Acre
-05:00	America/Cancun
-05:00	America/Lima
-05:00	America/Bahia_Banderas
-05:00	US/Indiana-Starke
-05:00	America/Rio_Branco
-05:00	SystemV/CST6CDT
-05:00	Jamaica
-05:00	America/Merida
-05:00	America/North_Dakota/New_Salem
-05:00	America/Winnipeg
-04:00	America/Cuiaba
-04:00	America/Marigot
-04:00	America/Indiana/Petersburg
-04:00	Chile/Continental
-04:00	America/Grand_Turk
-04:00	Cuba
-04:00	Etc/GMT+4
-04:00	America/Manaus
-04:00	America/Fort_Wayne
-04:00	America/St_Thomas
-04:00	America/Anguilla
-04:00	America/Havana
-04:00	US/Michigan
-04:00	America/Barbados
-04:00	America/Louisville
-04:00	America/Curacao
-04:00	America/Guyana
-04:00	America/Martinique
-04:00	America/Puerto_Rico
-04:00	America/Port_of_Spain
-04:00	SystemV/AST4
-04:00	America/Indiana/Vevay
-04:00	America/Indiana/Vincennes
-04:00	America/Kralendijk
-04:00	America/Antigua
-04:00	America/Indianapolis
-04:00	America/Iqaluit
-04:00	America/St_Vincent
-04:00	America/Kentucky/Louisville
-04:00	America/Dominica
-04:00	America/Asuncion
-04:00	EST5EDT
-04:00	America/Nassau
-04:00	America/Kentucky/Monticello
-04:00	Brazil/West
-04:00	America/Aruba
-04:00	America/Indiana/Indianapolis
-04:00	America/Santiago
-04:00	America/La_Paz
-04:00	America/Thunder_Bay
-04:00	America/Indiana/Marengo
-04:00	America/Blanc-Sablon
-04:00	America/Santo_Domingo
-04:00	US/Eastern
-04:00	Canada/Eastern
-04:00	America/Port-au-Prince
-04:00	America/St_Barthelemy
-04:00	America/Nipigon
-04:00	US/East-Indiana
-04:00	America/St_Lucia
-04:00	America/Montserrat
-04:00	America/Lower_Princes
-04:00	America/Detroit
-04:00	America/Tortola
-04:00	America/Porto_Velho
-04:00	America/Campo_Grande
-04:00	America/Virgin
-04:00	America/Pangnirtung
-04:00	America/Montreal
-04:00	America/Indiana/Winamac
-04:00	America/Boa_Vista
-04:00	America/Grenada
-04:00	America/New_York
-04:00	America/St_Kitts
-04:00	America/Caracas
-04:00	America/Guadeloupe
-04:00	America/Toronto
-04:00	SystemV/EST5EDT
-03:00	America/Argentina/Catamarca
-03:00	Canada/Atlantic
-03:00	America/Argentina/Cordoba
-03:00	America/Araguaina
-03:00	America/Argentina/Salta
-03:00	Etc/GMT+3
-03:00	America/Montevideo
-03:00	Brazil/East
-03:00	America/Argentina/Mendoza
-03:00	America/Argentina/Rio_Gallegos
-03:00	America/Catamarca
-03:00	America/Cordoba
-03:00	America/Sao_Paulo
-03:00	America/Argentina/Jujuy
-03:00	America/Cayenne
-03:00	America/Recife
-03:00	America/Buenos_Aires
-03:00	America/Paramaribo
-03:00	America/Moncton
-03:00	America/Mendoza
-03:00	America/Santarem
-03:00	Atlantic/Bermuda
-03:00	America/Maceio
-03:00	Atlantic/Stanley
-03:00	America/Halifax
-03:00	Antarctica/Rothera
-03:00	America/Argentina/San_Luis
-03:00	America/Argentina/Ushuaia
-03:00	Antarctica/Palmer
-03:00	America/Punta_Arenas
-03:00	America/Glace_Bay
-03:00	America/Fortaleza
-03:00	America/Thule
-03:00	America/Argentina/La_Rioja
-03:00	America/Belem
-03:00	America/Jujuy
-03:00	America/Bahia
-03:00	America/Goose_Bay
-03:00	America/Argentina/San_Juan
-03:00	America/Argentina/ComodRivadavia
-03:00	America/Argentina/Tucuman
-03:00	America/Rosario
-03:00	SystemV/AST4ADT
-03:00	America/Argentina/Buenos_Aires
-02:30	America/St_Johns
-02:30	Canada/Newfoundland
-02:00	America/Miquelon
-02:00	Etc/GMT+2
-02:00	America/Godthab
-02:00	America/Noronha
-02:00	Brazil/DeNoronha
-02:00	Atlantic/South_Georgia
-02:00	America/Nuuk
-01:00	Etc/GMT+1
-01:00	Atlantic/Cape_Verde
+14:00	Pacific/Kiritimati
+14:00	Etc/GMT-14
+13:00	Pacific/Fakaofo
+13:00	Pacific/Enderbury
+13:00	Pacific/Apia
+13:00	Pacific/Kanton
+13:00	Pacific/Tongatapu
+13:00	Etc/GMT-13
+12:45	NZ-CHAT
+12:45	Pacific/Chatham
+12:00	Pacific/Kwajalein
+12:00	Antarctica/McMurdo
+12:00	Pacific/Wallis
+12:00	Pacific/Fiji
+12:00	Pacific/Funafuti
+12:00	Pacific/Nauru
+12:00	Kwajalein
+12:00	NZ
+12:00	Pacific/Wake
+12:00	Antarctica/South_Pole
+12:00	Pacific/Tarawa
+12:00	Pacific/Auckland
+12:00	Asia/Kamchatka
+12:00	Etc/GMT-12
+12:00	Asia/Anadyr
+12:00	Pacific/Majuro
+11:00	Pacific/Ponape
+11:00	Pacific/Bougainville
+11:00	Antarctica/Casey
+11:00	Pacific/Pohnpei
+11:00	Pacific/Efate
+11:00	Pacific/Norfolk
+11:00	Asia/Magadan
+11:00	Pacific/Kosrae
+11:00	Asia/Sakhalin
+11:00	Pacific/Noumea
+11:00	Etc/GMT-11
+11:00	Asia/Srednekolymsk
+11:00	Pacific/Guadalcanal
+10:30	Australia/Lord_Howe
+10:30	Australia/LHI
+10:00	Australia/Hobart
+10:00	Pacific/Yap
+10:00	Australia/Tasmania
+10:00	Pacific/Port_Moresby
+10:00	Australia/ACT
+10:00	Australia/Victoria
+10:00	Antarctica/Macquarie
+10:00	Pacific/Chuuk
+10:00	Australia/Queensland
+10:00	Australia/Canberra
+10:00	Australia/Currie
+10:00	Pacific/Guam
+10:00	Pacific/Truk
+10:00	Australia/NSW
+10:00	Asia/Vladivostok
+10:00	Pacific/Saipan
+10:00	Antarctica/DumontDUrville
+10:00	Australia/Sydney
+10:00	Australia/Brisbane
+10:00	Etc/GMT-10
+10:00	Asia/Ust-Nera
+10:00	Australia/Melbourne
+10:00	Australia/Lindeman
+09:30	Australia/North
+09:30	Australia/Yancowinna
+09:30	Australia/Adelaide
+09:30	Australia/Broken_Hill
+09:30	Australia/South
+09:30	Australia/Darwin
+09:00	Etc/GMT-9
+09:00	Pacific/Palau
+09:00	Asia/Chita
+09:00	Asia/Dili
+09:00	Asia/Jayapura
+09:00	Asia/Yakutsk
+09:00	Asia/Pyongyang
+09:00	ROK
+09:00	Asia/Seoul
+09:00	Asia/Khandyga
+09:00	Japan
+09:00	Asia/Tokyo
+08:45	Australia/Eucla
+08:00	Asia/Kuching
+08:00	Asia/Chungking
+08:00	Etc/GMT-8
+08:00	Australia/Perth
+08:00	Asia/Macao
+08:00	Asia/Macau
+08:00	Asia/Choibalsan
+08:00	Asia/Shanghai
+08:00	Asia/Ulan_Bator
+08:00	Asia/Chongqing
+08:00	Asia/Ulaanbaatar
+08:00	Asia/Taipei
+08:00	Asia/Manila
+08:00	PRC
+08:00	Asia/Ujung_Pandang
+08:00	Asia/Harbin
+08:00	Singapore
+08:00	Asia/Brunei
+08:00	Australia/West
+08:00	Asia/Hong_Kong
+08:00	Asia/Makassar
+08:00	Hongkong
+08:00	Asia/Kuala_Lumpur
+08:00	Asia/Irkutsk
+08:00	Asia/Singapore
+07:00	Asia/Pontianak
+07:00	Etc/GMT-7
+07:00	Asia/Phnom_Penh
+07:00	Asia/Novosibirsk
+07:00	Antarctica/Davis
+07:00	Asia/Tomsk
+07:00	Asia/Jakarta
+07:00	Asia/Barnaul
+07:00	Indian/Christmas
+07:00	Asia/Ho_Chi_Minh
+07:00	Asia/Hovd
+07:00	Asia/Bangkok
+07:00	Asia/Vientiane
+07:00	Asia/Novokuznetsk
+07:00	Asia/Krasnoyarsk
+07:00	Asia/Saigon
+06:30	Asia/Yangon
+06:30	Asia/Rangoon
+06:30	Indian/Cocos
+06:00	Asia/Kashgar
+06:00	Etc/GMT-6
+06:00	Asia/Almaty
+06:00	Asia/Dacca
+06:00	Asia/Omsk
+06:00	Asia/Dhaka
+06:00	Indian/Chagos
+06:00	Asia/Qostanay
+06:00	Asia/Bishkek
+06:00	Antarctica/Vostok
+06:00	Asia/Urumqi
+06:00	Asia/Thimbu
+06:00	Asia/Thimphu
+05:45	Asia/Kathmandu
+05:45	Asia/Katmandu
+05:30	Asia/Kolkata
+05:30	Asia/Colombo
+05:30	Asia/Calcutta
+05:00	Asia/Aqtau
+05:00	Etc/GMT-5
+05:00	Asia/Samarkand
+05:00	Asia/Karachi
+05:00	Asia/Yekaterinburg
+05:00	Asia/Dushanbe
+05:00	Indian/Maldives
+05:00	Asia/Oral
+05:00	Asia/Tashkent
+05:00	Antarctica/Mawson
+05:00	Asia/Qyzylorda
+05:00	Asia/Aqtobe
+05:00	Asia/Ashkhabad
+05:00	Asia/Ashgabat
+05:00	Asia/Atyrau
+05:00	Indian/Kerguelen
+04:30	Iran
+04:30	Asia/Tehran
+04:30	Asia/Kabul
+04:00	Asia/Yerevan
+04:00	Etc/GMT-4
+04:00	Asia/Dubai
+04:00	Indian/Reunion
+04:00	Indian/Mauritius
+04:00	Europe/Saratov
+04:00	Europe/Samara
+04:00	Indian/Mahe
+04:00	Asia/Baku
+04:00	Asia/Muscat
+04:00	Europe/Astrakhan
+04:00	Asia/Tbilisi
+04:00	Europe/Ulyanovsk
+03:00	Asia/Aden
+03:00	Africa/Nairobi
+03:00	Europe/Istanbul
+03:00	Etc/GMT-3
+03:00	Europe/Zaporozhye
+03:00	Israel
+03:00	Indian/Comoro
+03:00	Antarctica/Syowa
+03:00	Africa/Mogadishu
+03:00	Europe/Bucharest
+03:00	Africa/Asmera
+03:00	Europe/Mariehamn
+03:00	Asia/Istanbul
+03:00	Europe/Tiraspol
+03:00	Europe/Moscow
+03:00	Europe/Chisinau
+03:00	Europe/Helsinki
+03:00	Asia/Beirut
+03:00	Asia/Tel_Aviv
+03:00	Africa/Djibouti
+03:00	Europe/Simferopol
+03:00	Europe/Sofia
+03:00	Asia/Gaza
+03:00	Africa/Asmara
+03:00	Europe/Riga
+03:00	Asia/Baghdad
+03:00	Asia/Damascus
+03:00	Africa/Dar_es_Salaam
+03:00	Africa/Addis_Ababa
+03:00	Europe/Uzhgorod
+03:00	Asia/Jerusalem
+03:00	Asia/Riyadh
+03:00	Asia/Kuwait
+03:00	Europe/Kirov
+03:00	Africa/Kampala
+03:00	Europe/Minsk
+03:00	Asia/Qatar
+03:00	Europe/Kiev
+03:00	Asia/Bahrain
+03:00	Europe/Vilnius
+03:00	Indian/Antananarivo
+03:00	Indian/Mayotte
+03:00	Europe/Volgograd
+03:00	Europe/Tallinn
+03:00	Turkey
+03:00	Asia/Nicosia
+03:00	Asia/Famagusta
+03:00	W-SU
+03:00	EET
+03:00	Asia/Hebron
+03:00	Asia/Amman
+03:00	Europe/Nicosia
+03:00	Europe/Athens
+02:00	Africa/Cairo
+02:00	Africa/Mbabane
+02:00	Europe/Brussels
+02:00	Europe/Warsaw
+02:00	CET
+02:00	Europe/Luxembourg
+02:00	Etc/GMT-2
+02:00	Libya
+02:00	Africa/Kigali
+02:00	Africa/Tripoli
+02:00	Europe/Kaliningrad
+02:00	Africa/Windhoek
+02:00	Europe/Malta
+02:00	Europe/Busingen
+02:00	Europe/Skopje
+02:00	Europe/Sarajevo
+02:00	Europe/Rome
+02:00	Europe/Zurich
+02:00	Europe/Gibraltar
+02:00	Africa/Lubumbashi
+02:00	Europe/Vaduz
+02:00	Europe/Ljubljana
+02:00	Europe/Berlin
+02:00	Europe/Stockholm
+02:00	Europe/Budapest
+02:00	Europe/Zagreb
+02:00	Europe/Paris
+02:00	Africa/Ceuta
+02:00	Europe/Prague
+02:00	Antarctica/Troll
+02:00	Africa/Gaborone
+02:00	Europe/Copenhagen
+02:00	Europe/Vienna
+02:00	Europe/Tirane
+02:00	MET
+02:00	Europe/Amsterdam
+02:00	Africa/Maputo
+02:00	Europe/San_Marino
+02:00	Poland
+02:00	Europe/Andorra
+02:00	Europe/Oslo
+02:00	Europe/Podgorica
+02:00	Africa/Bujumbura
+02:00	Atlantic/Jan_Mayen
+02:00	Africa/Maseru
+02:00	Europe/Madrid
+02:00	Africa/Blantyre
+02:00	Africa/Lusaka
+02:00	Africa/Harare
+02:00	Africa/Khartoum
+02:00	Africa/Johannesburg
+02:00	Europe/Belgrade
+02:00	Africa/Juba
+02:00	Europe/Bratislava
+02:00	Arctic/Longyearbyen
+02:00	Egypt
+02:00	Europe/Vatican
+02:00	Europe/Monaco
+01:00	Europe/London
+01:00	Etc/GMT-1
+01:00	Europe/Jersey
+01:00	Europe/Guernsey
+01:00	Europe/Isle_of_Man
+01:00	Africa/Tunis
+01:00	Africa/Malabo
+01:00	GB-Eire
+01:00	Africa/Lagos
+01:00	Africa/Algiers
+01:00	GB
+01:00	Portugal
+01:00	Africa/Ndjamena
+01:00	Atlantic/Faeroe
+01:00	Eire
+01:00	Atlantic/Faroe
+01:00	Europe/Dublin
+01:00	Africa/Libreville
+01:00	Africa/El_Aaiun
+01:00	Africa/Douala
+01:00	Africa/Brazzaville
+01:00	Africa/Porto-Novo
+01:00	Atlantic/Madeira
+01:00	Europe/Lisbon
+01:00	Atlantic/Canary
+01:00	Africa/Casablanca
+01:00	Europe/Belfast
+01:00	Africa/Luanda
+01:00	Africa/Kinshasa
+01:00	Africa/Bangui
+01:00	WET
+01:00	Africa/Niamey
+00:00	GMT
+00:00	Etc/GMT-0
+00:00	Atlantic/St_Helena
+00:00	Etc/GMT+0
+00:00	Africa/Banjul
+00:00	Etc/GMT
+00:00	Africa/Freetown
+00:00	Africa/Bamako
+00:00	Africa/Conakry
+00:00	Universal
+00:00	Africa/Sao_Tome
+00:00	Africa/Nouakchott
+00:00	UTC
+00:00	Etc/Universal
+00:00	Atlantic/Azores
+00:00	Africa/Abidjan
+00:00	Africa/Accra
+00:00	Etc/UCT
+00:00	GMT0
+00:00	Zulu
+00:00	Africa/Ouagadougou
+00:00	Atlantic/Reykjavik
+00:00	Etc/Zulu
+00:00	Iceland
+00:00	Africa/Lome
+00:00	Greenwich
+00:00	Etc/GMT0
+00:00	America/Danmarkshavn
+00:00	Africa/Dakar
+00:00	America/Scoresbysund
+00:00	Africa/Bissau
+00:00	Etc/Greenwich
+00:00	Africa/Timbuktu
+00:00	UCT
+00:00	Africa/Monrovia
+00:00	Etc/UTC

Q) How to form/get ZonedDateTime using ZoneId & ZoneOffset ?

Related Articles:

References:

Happy Coding !!
Happy Learning !!

Java 8 – OffsetDateTime with method details and examples
Java 8 – ZonedDateTime with method details and examples