我的Android应用正在使用此代码获取手机所在时区的简称。
String shortDisplayName = Calendar.getInstance().getTimeZone().getDisplayName(false, TimeZone.SHORT);
对于Strasbourg, France中的用户,shortDisplayName
是“HNEC”(我还没有确切知道哪个区域设置正在播放)。我正在尝试确定哪个TimeZone具有该短名称。所以,我把一些快速测试代码汇总在一起:
String[] ids = TimeZone.getAvailableIDs();
Locale[] locales = Locale.getAvailableLocales();
for (String id : ids) {
TimeZone timeZone = TimeZone.getTimeZone(id);
int rawOffset = timeZone.getRawOffset();
for (Locale locale : locales) {
String shortDisplayName = timeZone.getDisplayName(false, TimeZone.SHORT, locale);
if (shortDisplayName.equalsIgnoreCase("HNEC")) {
System.out.println(id + " | " + shortDisplayName + " | " + rawOffset);
}
}
}
当我运行该代码时,没有行打印。也就是说,使用任何语言环境的时区都没有解析为“HNEC”的短名称?如何确定哪个TimeZone的短名称为“HNEC”?