【发布时间】:2019-05-14 11:45:03
【问题描述】:
我正在编写一个 Java 应用程序,用户应该可以在其中选择他们的时区。我列出了所有可用的 TimeZone.getAvailableIDs(),它返回了 627 行。显然我不会要求用户从中选择。我应该如何覆盖所有时区 + 在适用的情况下使用正确的夏令时,并且选择最少?
【问题讨论】:
-
使用自动完成输入。
-
TimeZone类是旧的并且存在一些设计问题,以及它的朋友如Calendar和SimpleDateFormat。我建议你切换到java.time, the modern Java date and time API。它对应的类是ZoneId(不过也有627个可用的ID)。 -
没错,我们缺少一个时区选择器 GUI 组件。如果我们可以使用世界地图并让用户指向一个时区,那就太好了。如果做不到这一点,一个想法是让用户先选择大陆,然后再选择城市。它不能解决整个问题;仅美洲大陆就有 100 多个区域。
-
How to provide an elegant time zone picker? 的可能重复项,不过,那个人没有一个赞成或接受的答案。