Pregunta

Los problemas de internacionalización asociados a la manipulación de hilo puede más o menos pueden solucionar siguiendo el consejo:. Usar Unicode y guardarlo todo como UTF-8 en su base de datos, entonces usted será capaz de servir a los clientes que utilizan todas las lenguas del mundo

Pero ¿qué pasa con los problemas asociados con el manejo de internacionalización fecha / hora?

Preguntas:

  • ¿Hay similares fácil de seguir las mejores prácticas para resolver los problemas de internacionalización tiempo que rodean el manejo?
  • ¿Cómo hacer que sus aplicaciones pueden atender a los clientes que operan en diferentes zonas horarias? ¿Qué problemas has encontrado y cómo les has resolver?
¿Fue útil?

Solución

Tengo siguientes consejos,

  1. tienda todo su tiempo en la base de datos con una zona horaria, preferentemente Zulu (GMT).
  2. Asignar una zona horaria de cada usuario en el registro. Normalmente resolver esto de la lengua de la página de registro o el código incrustado en el enlace de la promoción. A veces, tenemos que preguntarnos usuario.
  3. Haga clientes zona horaria consciente. Esto significa que el cliente no puede mostrar la hora del servidor como es. Debe ser en la zona horaria local y en el formato local.
  4. El cliente debe hacer un esfuerzo para obtener información sobre la zona horaria del sistema. Si no es así, el servidor puede adivinar a partir de diversos datos. Conseguimos buenos resultados utilizando el lenguaje en primer lugar, a continuación, la dirección IP. En cualquier caso, el cliente tiene que mostrar la hora con la información de zona para que el usuario sepa lo que está pasando cuando el tiempo es malo.
  5. ¿Necesita banderas especiales para ciertos valores de tiempo que no está afectada por zona horaria. Tuvimos un error que los cambios de cumpleaños del usuario cuando cambian su configuración regional. Otras cosas que pertenecen a esta categoría incluyendo los días festivos, horario de la tienda, etc.
  6. Si usted tiene que sincronizar el reloj con el servidor, por favor no cambiar la hora del sistema, simplemente almacenar el delta en su cliente. Tuvimos un requisito de seguridad que el reloj debe estar en sintonía con el anfitrión. Así que nuestro cliente se sincroniza el reloj del sistema con nuestro servidor en el arranque. Eso es lo peor que puede hacer. Para sistemas más antiguos como Windows 95 sin zona horaria, cambiamos su tiempo en GMT. Finalmente los clientes más antiguos se fueron pero se enfrentan a un nuevo problema es que metimos la pata hasta el momento exacto de NTP.

Espero que algunos de nuestros errores le ayudará a evitarlos.

Otros consejos

ZZCoder tiene algunos puntos buenos. Éstos son algunos más:

  • Todos los valores de fecha y hora debe tener una zona horaria asociada. Debe definir lo que significa que si una fecha y hora no tiene uno (por ejemplo, en algunos casos, esto significará GMT + 0, en otros se debe a que el código está en el medio de averiguarlo y la asignación de uno).
  • Usted probablemente tendrá que adjuntar eventos con una fecha y hora para una ubicación. Esto significa que usted tendrá una manera de saber cuando se permite que la zona horaria de una fecha y hora de cambiar. Esto resuelve el problema de los cumpleaños en movimiento, sino que también permite un comportamiento inteligente de ahorro de luz cuando empieza o termina. Sin embargo, tenga cuidado de las relaciones no deseadas:. Creación de una reunión de varias personas en diferentes zonas horarias debe hacer referencia a una entrada canónica, no copiar datetimes y localizarlos
  • No hacer cálculos usted mismo:. Siempre siempre siempre hacer las funciones de biblioteca para hacer cálculos de fecha y hora

hubiera tenido un poco de suerte con este mediante el uso de algo de JavaScript para que el cliente nos informan de su zona horaria. Si recuerdo que consistió en calcular la hora actual en la máquina del usuario en la hora local y luego comparar eso contra Zulu.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top