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

时间:2010-11-21 12:26:21

标签: java timezone

其他网络应用程序使用什么策略为用户首选项生成格式正确的时区列表?

我尝试了获取所有时区,但列表很长,而且对于用户来说格式不是很好。

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

2 个答案:

答案 0 :(得分:3)

以下代码段

...
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)给出的不同偏移和/或时区添加过滤。

答案 1 :(得分:0)

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