首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法获得(只)有国家代码(有效的ISO-3166代码)的timeZone?

有没有办法获得(只)有国家代码(有效的ISO-3166代码)的timeZone?
EN

Stack Overflow用户
提问于 2009-09-07 15:17:38
回答 7查看 32.6K关注 0票数 16

我正在尝试获取用户的TimeZone。

为此,我有一个国家代码,这是一个有效的ISO国家代码。这些代码是ISO-3166定义的两个字母的大写代码。您可以在许多站点找到这些代码的完整列表,例如:http://www.chemie.fu-berlin.de/diverse/doc/ISO_3166.html

我认为答案是“不,因为这是一个很多关系……像美国这样的国家可以有很多时区……”。这就是问题所在。

我尝试过这样的方法:

代码语言:javascript
复制
//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);
  }

但它总是返回服务器TimeZone ...

有什么想法吗?

EN

回答 7

Stack Overflow用户

发布于 2009-09-07 16:00:31

Locale不是TimeZone,反之亦然。检查Javadoc中您正在使用的方法-第一行如下所示

使用默认时区和指定的区域设置获取日历。

这就是为什么你会得到默认时区--因为你在获取日历时没有指定一个时区。

想想Jon说过的话--如果你知道你想要在一个用户来自美国的情况下使用哪个时区,那么你可以调用Calendar.getInstance方法,这个方法需要一个时区和一个地区。另一方面,如果你不能明确地说出你将在这里做什么,那么回到绘图板上,更多地考虑你的需求,而不是看你的实现。

如果你不能回答前面的问题,我认为大多数网站的标准做法是允许用户指定他们喜欢的时区(如果他们在服务器上有一个永久帐户),如果他们没有说明,则默认使用服务器的时区。如果他们没有持久帐户,并且向您提供时间信息(例如XML上传),那么他们将不得不指定在请求中使用的时区,或者(可能更好的是)您强制所有时间都使用UTC。

票数 6
EN

Stack Overflow用户

发布于 2012-01-18 00:35:05

您可以使用ICU4J来实现这一点。请参阅http://helpdesk.objects.com.au/java/can-i-find-all-available-timezones-for-a-country

票数 4
EN

Stack Overflow用户

发布于 2009-09-07 15:18:50

我觉得你说的很对。美国、俄罗斯或其他各种“大国”(就东方/西方而言)没有一个时区。

美国当然是一个简单的例子--你想使用什么时区?America/Los_AngelesAmerica/New_York?还有别的吗?

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1389837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档