1

現在、JAVA で同じタイムゾーンに対して異なる表示名を取得するという問題があります。

コード:

TimeZone.getDefault().getDisplayName();

UTC で実行されている 2 台のマシンがあります。1 台のマシンでは「Greenwich Zeit」が取得され、もう 1 台のマシンでは「Koordinierte Universalzeit」が取得されます。

http://sanjaal.com/java/462/java-date-time-calendar/how-to-get-all-supported-timzone-ids-display-name-and-gmt-offset/のコードを使用してすべてのタイムゾーン ID とその表示名とオフセットのリストを取得します。以下は、GMT+0 の結果のみを示す抜粋です。

何らかの理由で、Java はこのタイムゾーン (TimeZone.getDefault()) の名前をランダムに選択するようです

質問:常に同じ一貫した表示名を取得する方法はありますか?

Africa/Accra                    :Ghanaische Normalzeit                                 GMT+0:0
Africa/Bamako                   :Greenwich Zeit                                        GMT+0:0
Africa/Banjul                   :Greenwich Zeit                                        GMT+0:0
Africa/Bissau                   :Greenwich Zeit                                        GMT+0:0
Africa/Casablanca               :Westeuropäische Zeit                                  GMT+0:0
Africa/Conakry                  :Greenwich Zeit                                        GMT+0:0
Africa/Dakar                    :Greenwich Zeit                                        GMT+0:0
Africa/El_Aaiun                 :Westeuropäische Zeit                                  GMT+0:0
Africa/Freetown                 :Greenwich Normalzeit                                  GMT+0:0
Africa/Lome                     :Greenwich Zeit                                        GMT+0:0
Africa/Monrovia                 :Greenwich Zeit                                        GMT+0:0
Africa/Nouakchott               :Greenwich Zeit                                        GMT+0:0
Africa/Ouagadougou              :Greenwich Zeit                                        GMT+0:0
Africa/Sao_Tome                 :Greenwich Zeit                                        GMT+0:0
Africa/Timbuktu                 :Greenwich Zeit                                        GMT+0:0
America/Danmarkshavn            :Greenwich Zeit                                        GMT+0:0
Atlantic/Canary                 :Westeuropäische Sommerzeit                            GMT+0:0
Atlantic/Faeroe                 :Westeuropäische Sommerzeit                            GMT+0:0
Atlantic/Faroe                  :Westeuropäische Sommerzeit                            GMT+0:0
Atlantic/Madeira                :Westeuropäische Sommerzeit                            GMT+0:0
Atlantic/Reykjavik              :Greenwich Zeit                                        GMT+0:0
Atlantic/St_Helena              :Greenwich Zeit                                        GMT+0:0
Eire                            :Irische Sommerzeit                                    GMT+0:0
Etc/GMT                         :GMT+00:00                                             GMT+0:0
Etc/GMT+0                       :GMT+00:00                                             GMT+0:0
Etc/GMT-0                       :GMT+00:00                                             GMT+0:0
Etc/GMT0                        :GMT+00:00                                             GMT+0:0
Etc/Greenwich                   :Greenwich Zeit                                        GMT+0:0
Etc/UCT                         :Koordinierte Universalzeit                            GMT+0:0
Etc/UTC                         :Koordinierte Universalzeit                            GMT+0:0
Etc/Universal                   :Koordinierte Universalzeit                            GMT+0:0
Etc/Zulu                        :Koordinierte Universalzeit                            GMT+0:0
Europe/Belfast                  :Britische Sommerzeit                                  GMT+0:0
Europe/Dublin                   :Irische Sommerzeit                                    GMT+0:0
Europe/Guernsey                 :Britische Sommerzeit                                  GMT+0:0
Europe/Isle_of_Man              :Britische Sommerzeit                                  GMT+0:0
Europe/Jersey                   :Britische Sommerzeit                                  GMT+0:0
Europe/Lisbon                   :Westeuropäische Sommerzeit                            GMT+0:0
Europe/London                   :Britische Sommerzeit                                  GMT+0:0
GB                              :Britische Sommerzeit                                  GMT+0:0
GB-Eire                         :Britische Sommerzeit                                  GMT+0:0
GMT                             :Greenwich Zeit                                        GMT+0:0
GMT0                            :GMT+00:00                                             GMT+0:0
Greenwich                       :Greenwich Zeit                                        GMT+0:0
Iceland                         :Greenwich Zeit                                        GMT+0:0
Portugal                        :Westeuropäische Sommerzeit                            GMT+0:0
UCT                             :Koordinierte Universalzeit                            GMT+0:0
UTC                             :Koordinierte Universalzeit                            GMT+0:0
Universal                       :Koordinierte Universalzeit                            GMT+0:0
WET                             :Westeuropäische Sommerzeit                            GMT+0:0
Zulu                            :Koordinierte Universalzeit   

                     GMT+0:0
4

1 に答える 1

2

JAVA は、に基づいてタイム ゾーンを取得しLOCALEます。

2 台のマシンのLocaleは異なるため、違いがあります。

可能な解決策は、Localeオブジェクトを作成し、それを次のようにメソッドに渡すことです-TimeZone.getDefault().getDisplayName(localeObject);

オブジェクトは次のLocaleように作成できます -

Locale(String language)
Locale(String language, String country)
Locale(String language, String country, String variant)
于 2012-05-29T16:13:59.490 に答える