Java ZoneId getAvailableZoneIds()方法及示例
ZoneId 类的 getAvailableZoneIds() 方法用于获取可用的区域ID集。这个ID集包括所有可用的基于区域的ID,ID可以传递给of(String)来创建一个ZoneId。
语法
public static Set getAvailableZoneIds()
参数: 该方法不接受任何参数。
返回值: 该方法返回Set,这是一个可修改的区域ID集的副本。
以下程序说明了getAvailableZoneIds()方法:
程序1 :
// Java program to demonstrate
// ZoneId.getAvailableZoneIds() method
import java.time.*;
import java.util.Set;
public class GFG {
public static void main(String[] args)
{
// get available zones using zoneIds()
Set<String> zoneIds = ZoneId.getAvailableZoneIds();
// print first record
System.out.println("First ZoneId in list:" + zoneIds.iterator().next());
}
}
输出。
First ZoneId in list:Asia/Aden
程序2
// Java program to demonstrate
// ZoneId.getAvailableZoneIds() method
import java.time.*;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
// get available zones using zoneIds()
Set<String> allZones = ZoneId.getAvailableZoneIds();
// create ArrayList from Set
List<String> zoneList = new ArrayList<String>(allZones);
Collections.sort(zoneList);
// printing first 5 zoneid with offset
LocalDateTime dt = LocalDateTime.now();
for (int i = 0; i < 5; i++) {
// get zoneid then ZonedDateTime and offset
// from that ZoneId
String s = zoneList.get(i);
ZoneId zoneid = ZoneId.of(s);
ZonedDateTime zoneddate = dt.atZone(zoneid);
ZoneOffset offset = zoneddate.getOffset();
System.out.println("ZoneId = " + zoneid + " offset = " + offset);
}
}
}
输出。
ZoneId = Africa/Abidjan offset = Z
ZoneId = Africa/Accra offset = Z
ZoneId = Africa/Addis_Ababa offset = +03:00
ZoneId = Africa/Algiers offset = +01:00
ZoneId = Africa/Asmara offset = +03:00
参考资料:
https://docs.oracle.com/javase/10/docs/api/java/time/ZoneId.html#getAvailableZoneIds(java.lang.Object)。