Man*_*nvi 5 java timezone google-api-java-client java-8 java-calendar
我必须传递带有时区信息的消息 (jms),例如 (America/Los_Angeles),但我只有国家/地区名称和代码。如果可能的话,用 Java 代码获取时区信息。我在某处读到这个:
System.out.println(TimeZone.getTimeZone("US"));
Run Code Online (Sandbox Code Playgroud)
但它的输出为
sun.util.calendar.ZoneInfo[id="GMT",offset=0,dstSavings=0,useDaylight=false,transitions=0,lastRule=null]
Run Code Online (Sandbox Code Playgroud)
我期待“美国/洛杉矶”的名单,......
根据文档,该getTimeZone方法返回指定的TimeZone或GMT区域(如果给定的 ID 无法理解)。没有名为US 的时区 ID ,因此它提供 GMT 时区。如果您确实想获取美国可用的所有时区列表,我建议您使用以下内容。
final List<String> timeZonesInUS = Stream.of(TimeZone.getAvailableIDs())
.filter(zoneId -> zoneId.startsWith("US")).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)