Java 在android中如何在列表中显示带有国家和城市名称的时区?
我正在开发一个应用程序,我必须在Java 在android中如何在列表中显示带有国家和城市名称的时区?,java,android,android-studio,timezone,timezone-offset,Java,Android,Android Studio,Timezone,Timezone Offset,我正在开发一个应用程序,我必须在微调器中显示带有国家和城市名称的时区。我使用了时区类。但在这种情况下,我只得到了timezoneId和timezoneName。如何在微调器中显示带有国家和城市名称的时区 解决方案:- private String[] timezoneArray; private Spinner spinner_timezone; spinner_timezone = (Spinner) findViewById(R.id.spinner_timezone); 那就叫这个吧
微调器中显示带有国家和城市名称的时区。我使用了时区
类。但在这种情况下,我只得到了timezoneId
和timezoneName
。如何在微调器中显示带有国家和城市名称的时区 解决方案:-
private String[] timezoneArray;
private Spinner spinner_timezone;
spinner_timezone = (Spinner) findViewById(R.id.spinner_timezone);
那就叫这个吧
timezoneArray = TimeZone.getAvailableIDs();
CustomAdapter customAdapter = new CustomAdapter(getApplicationContext(), timezoneArray);
spinner_timezone.setAdapter(customAdapter);
for (int i = 0; i < timezoneArray.length; i++) {
if (timezoneArray[i].equals(TimeZone.getDefault().getID())) {
spinner_timezone.setSelection(i);
break;
}
}
和自定义微调器项目
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:padding="10dp"
android:textSize="15sp"
android:text="Wifi Airtel"
android:textColor="#000" />
</RelativeLayout>
您考虑过使用吗?它提供了一个DateTimeUtils.getDefaultTimeZoneNames()
方法,该方法返回时区名称的映射
您可以找到更多信息请参阅本文档,该时区通常以地区(大陆或海洋)和城市(或岛屿(集团))给出,例如美洲/亚达克、亚洲/曼谷、大西洋/加那利、印度/马埃。这对你合适吗?@OleV.V。我想展示加尔各答(印度)、柏林(德国)这样的时区,但在我的例子中,它显示的是“欧洲/柏林”。我在这里没有县名。是否有任何api或库在列表中显示带有国家和城市名称的显示时区?@crammeur我已经检查了文档。但它不能解决我的问题。我不知道有这样的API,但可能存在。我想,你基本上需要一个城镇和国家的数据库。如果你准备接受一个外部图书馆——我同意,这可能会有很大的好处——为什么不去找乔达时代的继任者呢?time已经进行了后端口,并且该后端口在年针对Android进行了调整。在新的Android(API级别26或更高)上,甚至内置了java.time,不需要外部库。@OleV.V。我只是建议约达时间,因为这是我知道的时间,但我会看看ThreeTenABP,谢谢!它很难按照询问者在年提出的要求,以加尔各答(印度)或柏林(德国)的格式给出时区。它还使用了过时且设计拙劣的时区
类。它的现代替代品是java.time中的ZoneId
类,这是一个现代的java日期和时间API。我感谢您的经验,您可以更新答案或发布新答案亲爱的:),我也会检查它
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:padding="10dp"
android:textSize="15sp"
android:text="Wifi Airtel"
android:textColor="#000" />
</RelativeLayout>