Java:将“欧洲/伦敦”转换为 3 位时区

nr1*_*nr1 5 java timezone

如何将时区标识符转换为相应的 3 位字符串?例如“欧洲/伦敦”=>“格林威治标准时间”

mob*_*mob 5

参见String getDisplayName(boolean daylight,int style)中的方法java.util.TimeZone。样式可以是TimeZone.LONGTimeZone.SHORT,简短样式返回时区的简称。


更冗长的方法是检查 的输出String[] TimeZone.getAvailableIDs(int offset)。短时区代码可能不明确或冗余,因此也许您可能想更彻底地了解它:

TimeZone tz = TimeZone.getTimeZone("Europe/London");
for (String s : TimeZone.getAvailableIDs(tz.getOffset(System.currentTimeMillis()))) {
    System.out.print(s + ",");
}

------------------------------------------------------

Africa/Abidjan,Africa/Accra,Africa/Bamako,Africa/Banjul,Africa/Bissau,
Africa/Casablanca,Africa/Conakry,Africa/Dakar,Africa/El_Aaiun,Africa/Freetown,
Africa/Lome,Africa/Monrovia,Africa/Nouakchott,Africa/Ouagadougou,Africa/Sao_Tome,
Africa/Timbuktu,America/Danmarkshavn,Atlantic/Canary,Atlantic/Faeroe,
Atlantic/Faroe,Atlantic/Madeira,Atlantic/Reykjavik,Atlantic/St_Helena,
Eire,Etc/GMT,Etc/GMT+0,Etc/GMT-0,Etc/GMT0,Etc/Greenwich,Etc/UCT,
Etc/UTC,Etc/Universal,Etc/Zulu,Europe/Belfast,
Europe/Dublin,Europe/Guernsey,Europe/Isle_of_Man,Europe/Jersey,Europe/Lisbon,
Europe/London,GB,GB-Eire,GMT,GMT0,Greenwich,Iceland,Portugal,UCT,UTC,
Universal,WET,Zulu,
Run Code Online (Sandbox Code Playgroud)

  • 中欧夏季。 (4认同)