我们目前遇到的问题是,我们在 JAVA 中为同一时区获取不同的显示名称。
代码:
TimeZone.getDefault().getDisplayName();
我有两台以 UTC 格式运行的机器:在一台机器上,我得到"格林威治时代",在另一台机器上,我得到"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
JAVA根据LOCALE
选取时区。
两台机器中的Locale
会有所不同,因此也不同。
一个可能的解决方案是创建一个Locale
对象并将其传递给您的方法,例如 - TimeZone.getDefault().getDisplayName(localeObject);
可以按如下方式创建Locale
对象 -
Locale(String language)
Locale(String language, String country)
Locale(String language, String country, String variant)