有人可以解释如何获取GMT偏离当前时间的时区列表吗?
例如:当前时间是15:20 所以列表项应该是
16:20 UTC + 1阿姆斯特丹,柏林,伯尔尼,罗马,斯德哥尔摩,维也纳
17:20 UTC + 2赫尔辛基,基辅,里加,索菲亚,塔林,维尔纽斯
等等
如果让城市如此复杂,只要说明如何做到这一点
的问候!
答案 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。但是你总是可以创建自己的数据库来存储它们。