时区 - getAvailableIDs() - 仅过滤 tzdb 时区


String[] available = TimeZone.getAvailableIDs();

上面的 Java 代码段同时返回 TZDB 格式的时区和 Windows 格式的时区。有没有办法让它只返回 TZDB 时区? 例如,它返回的一些值是,

阿斯特美洲/阿达克美洲/安克雷奇美洲/阿特卡美洲/博伊西太平洋标准时间美洲/Los_Angeles...

我正在尝试消除其中的 AST、PST 值。

听起来您可能应该过滤掉没有/的时区 ID。TZDB 包含区域 ID,例如 EET 和 EST - 例如,版本 2014a 包含以下 4 个字符或更少的 ID:

"CET", "古巴", "EET", "EST", "爱尔兰", "GB", "GMT", "GMT0", "HST", "伊朗", "MET", "MST", "NZ", "PRC", "ROC", "ROK", "UCT", "UTC", ">

W-SU", "WET", "ZULU">

过滤掉任何不包含/的东西会过滤掉更多的东西......它将删除所有:

"CET", "CST6CDT", "古巴", "EET", "EST", "EST5EDT", "埃及", "爱尔兰", "GB", "GB-爱尔兰", "GMT", "GMT+0", "GMT-0", "GMT0", "格林威治", "HST", "香港", "冰岛", "伊朗", "以色列", "牙买加", "日本", "夸贾林省", "利比亚", "MET", "MST", "MST7MDT", "新西兰", "新西兰-聊天", "纳瓦霍语", "PRC", "PST8PDT", "波兰", "葡萄牙", "中华民国", "韩国", "新加坡", "土耳其", "UCT", "UTC", "环球", ">

W-SU", "WET", "ZULU">

因此,请检查该列表 - 如果其中没有任何您介意丢失的内容,请按/过滤。请注意,以上几乎所有内容实际上都是其他 ID 的别名。只有以下是不包含/的规范 ID:

"CET">

, "CST6CDT", "EET", "EST", "EST5EDT", "HST", "MET", "MST", "MST7MDT", "PST8PDT", "WET">

相关内容

  • 没有找到相关文章

最新更新