Создание удобного списка часовых поясов для пользовательских настроек - PullRequest
21 голосов
/ 23 ноября 2010

Ниже приведен фрагмент списка часовых поясов, возвращаемых из Java (я напечатал смещение часового пояса, идентификатор часового пояса и длинное имя, используя JodaTime).

(GMT-10:00) HST, Hawaii Standard Time     
(GMT-10:00) Pacific/Apia, -10:00
(GMT-10:00) Pacific/Fakaofo, Tokelau Time
(GMT-10:00) Pacific/Honolulu, Hawaii Standard Time
(GMT-10:00) Pacific/Johnston, Hawaii Standard Time

В чем разница между HST , Pacific / Honolulu и Pacific / Johnston , например?Кажется, что все они используют Гавайское стандартное время , почему в базе данных есть 3 записи?

  • Моя конечная цель - просто создать список часовых поясов для пользовательских настроек в сети.app.

Если я использую все часовые пояса из базы данных tzDatabase, список будет длинным и, похоже, будет иметь эффективные дубликаты (пример выше).Я мог бы просто перечислить уникальные длинные имена форм, такие как «Стандартное время Гавайев», но затем мне нужно решить, как сопоставить его с любым из часовых поясов, которые используют это же длинное имя.

Что делают другиелюди делают в этом случае?Как создать удобный и удобный список часовых поясов и сопоставить их с соответствующими java TimeZone?

Ответы [ 3 ]

14 голосов
/ 08 декабря 2010

Я думаю, вы предполагаете, что «удобный» означает показать им небольшой список.Дело в том, что все эти часовые пояса используются кем-то где-то.Они могут выглядеть одинаково для вас, но часто ведут себя немного иначе.Я живу в Саскачеване, и у нас есть собственная версия CST.Длинное название - «Центральное стандартное время», но мы не используем летнее время, поэтому в течение полугода мы не выстраиваем реальный CST.Есть даже одна небольшая область Саскачевана, которая имеет разницу во времени 15 минут.Даже если они кажутся одинаковыми, они разные, и я думаю, что вы должны позволить пользователям выбирать из всего списка.

Попытка разумного сокращения списка может быть сравнима с не перечислением всехвозможные коды валют, когда пользователь может выбрать предпочитаемую валюту.Да, может быть только горстка людей, которые используют определенные.Конечно, могут быть некоторые с такими же показателями конверсии в настоящее время.В конце концов, пусть пользователь сам решит, о чем он заботится.

Одно решение для отображения больших списков или потенциально несущественных данных с несколькими интересующими элементами: определите наиболее часто используемыете сначала и затем отделяют их к вершине списка.Это можно увидеть на различных сайтах для выбора страны, например:

Canada
United States
------------------
Argentina
Australia
...

Эта стратегия также часто используется для моего предыдущего примера валюты.Для часовых поясов это может выглядеть примерно так (если ваша основная база пользователей находится в Северной Америке):

EST
CST
MST
PST
------------------
Hawaii
Saskatchewan
...

Помните, однако, что для этого потребуется вручную предварительно определить, что является общим для часовые пояса.

Мне кажется, что лучше всего просто перечислить все часовые пояса, отсортированные по смещению, потому что большинство людей будут знать, где найти эту зонуна основе смещения.Например, я всегда сначала ищу «-6: 00», а не Саскачеван.Надеюсь, это поможет!

6 голосов
/ 03 декабря 2010

Данные CLDR содержат список "важных" часовых поясов и, вероятно, могут использоваться для выбора отображаемых.(Я помню кое-что еще, но это - лучшее, что я могу найти сейчас)

Несколько идентификаторов часовых поясов будут существовать для одного и того же места, если в прошлом данные отличались или еслиместо было переименовано (функция псевдонима в данных часового пояса).Удаление обратного файла при компиляции данных часового пояса приведет к удалению большинства псевдонимов.

1 голос
/ 23 ноября 2010

Является ли часовой пояс использует летнее время, вероятно, самая распространенная разница.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...