3 回答

TA貢獻(xiàn)2019條經(jīng)驗 獲得超9個贊
是的,您可以執(zhí)行此操作,請查看此內(nèi)容。
final List<ZoneId> timeZoneByUtc = ZoneId.getAvailableZoneIds().stream().map(ZoneId::of)
.filter(z -> z.getRules().getOffset(Instant.now()).equals(ZoneOffset.ofHours(-5)))
.collect(Collectors.toList());

TA貢獻(xiàn)1802條經(jīng)驗 獲得超4個贊
首先確定何時是“現(xiàn)在”:使用Instant.now()
(如果您想要一個一致的答案,請Instant.now()
僅撥打一次)。
然后遍歷所有可用時區(qū),并包括現(xiàn)在處于偏移-05:00的時區(qū)。首先從中獲取可用的時區(qū)ID作為字符串ZoneId.getAvailableZoneIds()
。對于每個,從中獲取相應(yīng)的ZoneId
對象ZoneId.of(String)
?,F(xiàn)在有多種獲取偏移量的方法。一種是yourZoneId.getRules().getOffset(rightNow)
(rightNow
您的位置在哪里Instant
)。這為您提供了一個ZoneOffset
對象,您可以offset
使用將該對象與您的問題進(jìn)行比較.equals(Object)
。

TA貢獻(xiàn)1818條經(jīng)驗 獲得超3個贊
public class Main {
public static void main(String[] args) {
TimeZone tz = TimeZone.getTimeZone("GMT-05:00");
String a[] = TimeZone.getAvailableIDs(tz.getOffset(System.currentTimeMillis()));
for (int i = 0; i < a.length; i++) {
System.out.println(a[i]);
}
}
}
O / P
美洲/阿蒂科坎美洲/波哥大美洲/坎昆美洲/開曼美洲/珊瑚港美洲/底特律美洲/愛倫尼普美洲/ Fort_Wayne美洲/大特克美洲/瓜亞基爾美洲/哈瓦那...
添加回答
舉報