Obtenga el país de un determinado huso horario de Java

Tengo un objeto de TimeZone java, por ejemplo America/Denver . En teoría, la base de datos IANA lista un código de país para ese TimeZone, a saber US

En java o Android, ¿cómo puedo obtener el país para un objeto TimeZone especificado?

ACTUALIZACIÓN: Tenga en cuenta que no estoy hablando de asignar GMT+0700 a un país específico. Obviamente, puede haber varios países que se asignan a un solo offset bruto. Estoy hablando de la asignación de un código horario específico de https://en.wikipedia.org/wiki/Zone.tab a su código de país singular asociado.

Para mapear entre países y zonas horarias usé la biblioteca ICU. Utilizando el método com.ibm.icu.util.TimeZone.getAvailableID (countryCode), logré mapear zonas horarias a códigos de país.

 public static Map<String, String> mapTimezonesToCountries() { Map<String, String> timezoneToCountry = new HashMap<>(); String[] locales = Locale.getISOCountries(); for (String countryCode : locales) { for (String id : com.ibm.icu.util.TimeZone.getAvailableIDs(countryCode)) { // Add timezone to result map timezoneToCountry.put(id, countryCode); } } return timezoneToCountry; } 

No puedes, no hay una relación 1: 1 de TimeZone a Country.
Por ejemplo, también hay la zona horaria "UTC"

El enlace que has dado a zone.tab es en realidad el origen de los datos que estás buscando. Por supuesto, usted desearía utilizar uno que sea autoritario , algo que la copia en Wikipedia.

La base de datos IANA / Olson se implementa en Java con la biblioteca JodaTime . Pero no creo que expongan zone.tab a través de ninguna clase. Al menos no pude encontrarlo. Actualiza por favor si soy incorrecto en esto.

Siempre puede importar el archivo usted mismo y utilizarlo según sea necesario.

ACTUALIZAR

No sé nada sobre Android, pero he encontrado algo que podría tener sentido para usted. Parece que hay una función que expone los datos zone.tab en libcore.icu.TimeZoneNames.forLocale (locale)

Busqué, pero no pude encontrar ninguna documentación de referencia sobre esto.

  • Obtención de la zona horaria en android
  • Lista predeterminada de zonas horarias de Android
  • ¿De dónde toma Android la zona horaria predeterminada?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.