1

我们目前遇到的问题是我们在 JAVA 中为同一时区获得不同的显示名称。

编码:

TimeZone.getDefault().getDisplayName();

我有两台机器在 UTC 运行:在一台机器上我得到“Greenwich Zeit”,在另一台机器上我得到“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.

两台机器中的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 回答