有没有办法获得带有(仅)国家/地区代码(有效ISO-3166代码)的时区?
我正在尝试为用户获取时区。
为此,我有一个国家代码,这是一个有效的ISO国家代码。这些代码是 ISO-3166 定义的大写双字母代码。您可以在许多网站上找到这些代码的完整列表,例如:http://www.chemie.fu-berlin.de/diverse/doc/ISO_3166.html
我认为回应是“不,因为这是一种多元关系......像美国这样的国家可以有很多时区......“。这就是问题所在...
我尝试了这样的东西:
//CountryEnum contains ISO_3166 values (http://www.chemie.fu-berlin.de/diverse/doc/ISO_3166.html)
//List all country to test timezone:
for (int i = 0; i < CountryEnum.values().length; i++) {
String isoCountryCode = CountryEnum.values()[i].name();// Get the iso country code
Locale locale = new Locale(isoCountryCode);// Build a country specific locale
Calendar calendar = Calendar.getInstance(locale);// Build a calendar with the specific locale
String timeZone = calendar.getTimeZone().getDisplayName();// Build a timeZone with the calendar
System.out.println("LOCALE : "+locale+" / COUNTRY: "+isoCountryCode+" / TIMEZONE: "+timeZone);
}
但它总是返回服务器时区...
有什么想法吗?