2017-10-17 27 views
0

可在的Android的Android缺少一些時區,在Java中

Timezone.getAvailableIds();

只返回580個ID。

的Java(均爲同一版本1.7)

Timezone.getAvailableIds()

回報623個IDS。

一些失蹤的ID是

IST

PST

ECT

JST

任何幫助?

+1

你對「這個幫助」有什麼意思?它是如何引起問題的,你如何使用這個時區? –

+0

是的..我使用TimeZone.getTimeZone(userTZ);獲取時區並格式化時間。如果userTZ是任何缺失的ID,則默認情況下它會返回GMT。它會導致時間問題,我會顯示時間。 –

+0

這些簡稱(IST,PST和其他)是[含糊而不是標準](https://stackoverflow.com/a/18407231/7605325),並且由於逆向兼容性的原因而支持其中一些名稱。例如IST可以是印度標準時間,愛爾蘭標準時間或以色列標準時間。只允許[IANA時區名稱](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)(總是採用「亞洲/加爾各答」或「歐洲/柏林」的「地區/城市」格式) – 2017-10-17 10:48:57

回答

1

爲了與JDK 1.1.x的兼容性,一些其他三個字母的時區 的ID(例如, 「PST」, 「CTT」, 「AST」)也支持。

請注意單詞「some」,這意味着在Android中不支持所有三字母時區ID。這就是爲什麼您只能獲得580個ID而不是623.支持的時區ID取決於您使用的SDK版本。

另外,還要注意表達的這種方式已經過時:

但是,建議使用它們,因爲相同的縮寫經常用於多個時區(例如 ,「CST」可以是美國 「中央標準時間」和「中國標準時間」),然後Java平臺才能識別其中的一個。

參考:https://developer.android.com/reference/java/util/TimeZone.html

我希望這回答了你的問題。

+0

謝謝你的回答!將檢查自定義ID。 –