Java 获取与Android设置应用程序中类似的时区列表
我试过使用Java 获取与Android设置应用程序中类似的时区列表,java,android,timezone,Java,Android,Timezone,我试过使用DateTimeZone.getAvailableIDs(),但我得到了500多个时区ID和时区名称,但我想在我的列表中显示时区和名称,其可读性应与我的设备(牛轧糖版本)在设置中的显示相同。 我的设备在设置列表中只显示88个时区,我希望和我的应用程序中的一样 getAvailableIDs()给出了诸如Etc/GMT-5、Etc/GMT-6等名称。这些名称会让用户感到困惑 设置中显示的时区可能取决于每个设备和制造商。它只是一个用Android ROM编译的XML,你不能从普通的应用程
DateTimeZone.getAvailableIDs()
,但我得到了500多个时区ID和时区名称,但我想在我的列表中显示时区和名称,其可读性应与我的设备(牛轧糖版本)在设置中的显示相同。
我的设备在设置列表中只显示88个时区,我希望和我的应用程序中的一样
getAvailableIDs()
给出了诸如Etc/GMT-5、Etc/GMT-6等名称。这些名称会让用户感到困惑
设置中显示的时区可能取决于每个设备和制造商。它只是一个用Android ROM编译的XML,你不能从普通的应用程序访问它(设置使用一个与AOSP集成的名为SettingsLib的库,但除非你用Android ROM编译你的应用程序,否则你将无法访问这个库) 这看起来很令人失望,但是,这个文件在Android版本中没有太大变化,您可以将它包含在项目中(在
res/xml/timezones.xml
),每个设备都有相同的列表
这是的文件,这是的(安卓10只比安卓7多了一个城市)
您可以看到Android如何使用此XML文件获取时区(name+gmt)。您希望在列表中显示哪些时区?您遇到了什么困难?它应该列出所有国家的时区。(1)“DateTimeZone.getAvailableIDs()”提供500多个时区ID,但我希望国家的时区名称列表应该在88左右,不要太多。(2)它列出了一些类似于“ETC/GMT-9”的区域,这些区域不可理解,会让用户感到困惑。很抱歉让您失望。许多国家都有几个时区。看。大约375个时区ID被标记为规范。其中25个在
Etc/
域中,如果将它们取出,仍然会留下大约350个。与500相比没有大的改进。谢谢@OleV.V,但我正在寻找android设备(牛轧糖版本)上显示的时区列表,我只计算为88。我想知道有没有办法只获得android上显示的那些时区列表(如第一个屏幕截图),谢谢Abdelilah El Aissaoui