如何生成与java TimeZone对应的时区的良好下拉列表

其他Web应用程序使用什么策略来为用户首选项生成格式良好的时区列表?

我尝试了所有的时区,但列表很长,并没有完全格式化为用户。

只是想知道其他人是如何做到这一点的。

以下代码段

... String [] ids = TimeZone.getAvailableIDs(); for(String id:ids) { TimeZone zone = TimeZone.getTimeZone(id); int offset = zone.getRawOffset()/1000; int hour = offset/3600; int minutes = (offset % 3600)/60; System.err.println(String.format("(GMT%+d:%02d) %s", hour, minutes, id)); } ... 

将打印格式化的时区,如:

 (GMT+12:00) Pacific/Tarawa (GMT+12:00) Pacific/Wake (GMT+12:00) Pacific/Wallis (GMT+12:45) NZ-CHAT 

您可能希望为zone.getDisplayName(zone.useDaylightTime(), TimeZone.SHORT)给出的不同偏移和/或时区添加过滤。

一种简单的方法是将时区ID放在列表中而不是时区本身。 TimeZone.getAvailableIDs()返回GMT,Europe / Paris,America / New_York等值…