如何获得城市时区列表?

时间:2014-11-27 21:58:48

标签: java android

有人可以解释如何获取GMT偏离当前时间的时区列表吗?
例如:当前时间是15:20 所以列表项应该是
16:20 UTC + 1阿姆斯特丹,柏林,伯尔尼,罗马,斯德哥尔摩,维也纳 17:20 UTC + 2赫尔辛基,基辅,里加,索菲亚,塔林,维尔纽斯
等等 如果让城市如此复杂,只要说明如何做到这一点
问候!

1 个答案:

答案 0 :(得分:2)

您应该能够使用Timezone类和GregorianCalendar类来检索时区,GMT偏移量和不同的本地当前时间,如下所示:

for(String timezone : Timezone.getAvailableIDs()) {
    Calendar cal = new GregorianCalendar(timezone);

    // or do whatever you want with these
    System.out.println("AM_PM: " + calendar.get(Calendar.AM_PM));
    System.out.println("HOUR: " + calendar.get(Calendar.HOUR));
    System.out.println("HOUR_OF_DAY: " + calendar.get(Calendar.HOUR_OF_DAY));
    System.out.println("MINUTE: " + calendar.get(Calendar.MINUTE));
    System.out.println("SECOND: " + calendar.get(Calendar.SECOND));
    System.out.println("MILLISECOND: " + calendar.get(Calendar.MILLISECOND));
    System.out.println("ZONE_OFFSET: " + (calendar.get(Calendar.ZONE_OFFSET)/(60*60*1000)));
}

至于在每个时区检索有关本地城市的信息,我不知道有任何开源API或库这样做。有付费 Time API。但是你总是可以创建自己的数据库来存储它们。