当您根据无法识别的自定义ID(例如有拼写错误)创建java.util.TimeZone
类的实例时,您将获得GMT时区。
TimeZone timezone = TimeZone.getTimeZone("Europ/Zurich"); //'e' missing in 'Europe'
System.out.println(timezone.getID()); //result: "GMT"
我应该如何区分“真正的”GMT时区和无法识别的时区?
答案 0 :(得分:1)
无法找到直接API来执行此操作。您可以使用获取ID,然后查找匹配项。只是一个参考impl。这里
Set<String> timezones = new HashSet<String>(Arrays.asList(TimeZone.getAvailableIDs()));
System.out.println(timezones.contains("Europ/Zurich"));
System.out.println(timezones.contains("Europe/Zurich"));