2010-11-23 7 views
21

A continuación se muestra un fragmento de la lista de zonas horarias devueltas desde Java (he imprimido el desplazamiento de la zona horaria, la identificación de la zona horaria y el nombre largo con JodaTime).Creación de una lista de zonas horarias fácil de usar para las preferencias del usuario

(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 

¿Cuál es la diferencia entre HST, Pacífico/Honolulu, y Pacífico/Johnston, por ejemplo? Todos parecen usar Hawaii Standard Time, ¿por qué hay 3 entradas en la base de datos?

  • Mi objetivo final es simplemente crear una lista de zonas horarias para las preferencias del usuario en una aplicación web.

Si utilizo todas las zonas horarias del tzDatabase la lista es larga y parece tener duplicados eficaces (ejemplo anterior). Podría simplemente enumerar nombres largos de formas largas como "Hawaii Standard Time", pero luego debo decidir cómo asignarlos a cualquiera de las zonas horarias que usan ese mismo nombre largo.

¿Qué hacen las demás personas en este caso? ¿Cómo se crea una lista agradable de zonas horarias fácil de usar y se las asigna a su TimeZone de java relevante?

+0

por favor, echa un vistazo a los Locales ... ellos difieren – Rajan

+0

Un gran comentario, buena idea, pero creo que solo hay una configuración regional para los Estados Unidos ¿verdad? Y como 6 zonas horarias en total (Hawii, Alaska, Pacífico, montaña, centro, este). –

+0

hmmm nt seguro cuál es el problema, entonces echa un vistazo a http://en.wikipedia.org/wiki/Lists_of_time_zones algo atacar ... – Rajan

Respuesta

14

Creo que está asumiendo que "fácil de usar" significa mostrarles una pequeña lista. El hecho es que todas esas zonas horarias son utilizadas por alguien, en alguna parte. Puede que te parezcan iguales pero a menudo tienen un comportamiento ligeramente diferente. Vivo en Saskatchewan y tenemos nuestra propia versión de CST. El nombre largo es solo "Hora estándar central" pero no usamos el horario de verano, por lo que durante la mitad del año, no nos alineamos con CST real. Incluso hay una pequeña área de Saskatchewan que tiene una diferencia de 15 minutos en el tiempo. Incluso si parecen iguales, son diferentes y creo que debería permitir que los usuarios seleccionen de la lista completa.

Intentando inteligentemente acortar la lista puede ser comparable a no enumerar todos los códigos de moneda posibles al permitir que un usuario seleccione una moneda preferida. Sí, solo puede haber un puñado de personas que usen ciertas. Claro, puede haber algunos con las mismas tasas de conversión actualmente. Al final, deje que el usuario decida qué le importa.

Una solución para mostrar listas grandes o potencialmente datos no importantes con solo unos pocos elementos de interés real: primero determine los más utilizados y luego sepárelos al principio de la lista. Esto se puede ver en varios sitios web para la selección de país, por ejemplo:

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

Esta estrategia también se utiliza a menudo para mi ejemplo anterior de la moneda.Podría ser algo como esto para zonas horarias (Si su base principal usuario se encuentra en América del Norte):

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

recordar, sin embargo, esto requerirá que manualmente, antes de determinar cuál es la zonas horarias comunes son .

me siento el mejor enfoque es hacer una lista simplemente todas las zonas horarias, ordenados por desplazamiento debido más gente va a saber dónde encontrar allí la zona basado en offset. Por ejemplo, siempre busco primero "-6: 00", no Saskatchewan. ¡Espero que esto ayude!

+1

Si decide tener muchos elementos en un elemento '