Java中的时区

Vis*_*ish 26 java timezone

我允许用户在我的网络应用程序上根据他们选择的时区安排活动.

我想向最终用户提供一个很好的时区列表,然后将其轻松转换java.util.TimeZone为服务器端的对象.

String[] TimeZone.getAvailableIds() 是我可以使用的东西,但问题是它打印了大约585个时区ID.

向用户提供一个简短的时区列表(如Windows框用于时区设置)并使用其ID轻松转换为服务器端的TimeZone对象的最佳方法是什么?

ZZ *_*der 24

时区列表非常适用于应用程序和区域设置.只有您知道哪些区域最适合您的用户.我们实际上有不同地区的不同列表.

以下是我们的美国用户列表供您参考,

    "Pacific/Midway",
    "US/Hawaii",
    "US/Alaska",
    "US/Pacific",
    "America/Tijuana",
    "US/Arizona",
    "America/Chihuahua",
    "US/Mountain",
    "America/Guatemala",
    "US/Central",
    "America/Mexico_City",
    "Canada/Saskatchewan",
    "America/Bogota",
    "US/Eastern",
    "US/East-Indiana",
    "Canada/Eastern",
    "America/Caracas",
    "America/Manaus",
    "America/Santiago",
    "Canada/Newfoundland",
    "Brazil/East",
    "America/Buenos_Aires",
    "America/Godthab",
    "America/Montevideo",
    "Atlantic/South_Georgia",
    "Atlantic/Azores",
    "Atlantic/Cape_Verde",
    "Africa/Casablanca",
    "Europe/London",
    "Europe/Berlin",
    "Europe/Belgrade",
    "Europe/Brussels",
    "Europe/Warsaw",
    "Africa/Algiers",
    "Asia/Amman",
    "Europe/Athens",
    "Asia/Beirut",
    "Africa/Cairo",
    "Africa/Harare",
    "Europe/Helsinki",
    "Asia/Jerusalem",
    "Europe/Minsk",
    "Africa/Windhoek",
    "Asia/Baghdad",
    "Asia/Kuwait",
    "Europe/Moscow",
    "Africa/Nairobi",
    "Asia/Tbilisi",
    "Asia/Tehran",
    "Asia/Muscat",
    "Asia/Baku",
    "Asia/Yerevan",
    "Asia/Kabul",
    "Asia/Yekaterinburg",
    "Asia/Karachi",
    "Asia/Calcutta",
    "Asia/Colombo",
    "Asia/Katmandu",
    "Asia/Novosibirsk",
    "Asia/Dhaka",
    "Asia/Rangoon",
    "Asia/Bangkok",
    "Asia/Krasnoyarsk",
    "Asia/Hong_Kong",
    "Asia/Irkutsk",
    "Asia/Kuala_Lumpur",
    "Australia/Perth",
    "Asia/Taipei",
    "Asia/Tokyo",
    "Asia/Seoul",
    "Asia/Yakutsk",
    "Australia/Adelaide",
    "Australia/Darwin",
    "Australia/Brisbane",
    "Australia/Sydney",
    "Pacific/Guam",
    "Australia/Hobart",
    "Asia/Vladivostok",
    "Asia/Magadan",
    "Pacific/Auckland",
    "Pacific/Fiji",
    "Pacific/Tongatapu",
Run Code Online (Sandbox Code Playgroud)


Nei*_*eil 11

我刚刚编写了一个小型Java实用程序,它提供了Windows时区列表(Windows中时区选择对话框中的区域)及其关联的Java TimeZone对象.请参阅https://github.com/nfergu/Java-Time-Zone-List

这是基于http://unicode.org/repos/cldr/trunk/common/supplemental/windowsZones.xml上的CLDR映射


tbr*_*lle 5

您可以使用仅匹配以下正则表达式的 TZ ID 来减少列表

^(Africa|America|Asia|Atlantic|Australia|Europe|Indian|Pacific)/.*
Run Code Online (Sandbox Code Playgroud)