亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何通過UTC偏移量獲取時區?

如何通過UTC偏移量獲取時區?

手掌心 2021-04-19 21:22:38
我的UTC偏移量為-05:00,我想按偏移量獲取時區名稱。ZoneOffset offset = ZoneOffset.of("-05:00");System.out.println(offset.getId()); //prints -05:00我想得到這樣的結果:America/ChicagoAmerica/EirunepeEtc/GMT+5Mexico/General ...我想要-05:00現在偏移的時區(而不是一年中其他時間的時區)。
查看完整描述

3 回答

?
慕少森

TA貢獻2019條經驗 獲得超9個贊

是的,您可以執行此操作,請查看此內容。


final List<ZoneId> timeZoneByUtc = ZoneId.getAvailableZoneIds().stream().map(ZoneId::of)

        .filter(z -> z.getRules().getOffset(Instant.now()).equals(ZoneOffset.ofHours(-5)))

        .collect(Collectors.toList());


查看完整回答
反對 回復 2021-04-28
?
慕虎7371278

TA貢獻1802條經驗 獲得超4個贊

首先確定何時是“現在”:使用Instant.now()(如果您想要一個一致的答案,請Instant.now()僅撥打一次)。

然后遍歷所有可用時區,并包括現在處于偏移-05:00的時區。首先從中獲取可用的時區ID作為字符串ZoneId.getAvailableZoneIds()。對于每個,從中獲取相應的ZoneId對象ZoneId.of(String)?,F在有多種獲取偏移量的方法。一種是yourZoneId.getRules().getOffset(rightNow)rightNow您的位置在哪里Instant)。這為您提供了一個ZoneOffset對象,您可以offset使用將該對象與您的問題進行比較.equals(Object)。


查看完整回答
反對 回復 2021-04-28
?
泛舟湖上清波郎朗

TA貢獻1818條經驗 獲得超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美洲/大特克美洲/瓜亞基爾美洲/哈瓦那...


查看完整回答
反對 回復 2021-04-28
  • 3 回答
  • 0 關注
  • 297 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號