Convirtiendo fechas entre zonas horarias

Me encontraba con un problema en mi aplicación L-exp a la hora de guardar las feeds de diferentes partes del mundo. Es decir, cada una llevaba su zona horaria propia y por tanto cuando quería mostrarlas sobre una misma base ( la del servidor local) no lo podía hacer ya que estaban en diferentes zonas.

Googleando encontré una librería y un Plugin llamados tzinfo. Tras pelearme un poquito he conseguido de forma fácil hacer una conversión de las fechas antes de guardarlas a la zona horaria del servidor.

Por lo que he leído Rails no resuelve bien este tema en su estándar de momento y por tanto hay que usar esta biblioteca

require 'tzinfo'
tz = TZInfo::Timezone.get('America/Chicago')
fechaconv=tz.utc_to_local(fecha.utc)

Hay que asegurarse que se tienen los dos instalados. Luego en la segunda línea yo tuve que averiguar en que zona se encuentra mi hosting para calcular la base. Supongo que debe haber una forma más correcta de hacerlo, pero yo lo hice por estimación.

Plugin | tzinfo plugin

Biblioteca | tzinfo.rubyforge.org

Popularity: 1% [?]

2 Comments

  1. voodmania wrote
    at 12:59 :40 - 26th noviembre 2007 Permalink

    Un comentario que no se si es muy tonto. No merece la pena utilizar UTC y así simplificas las conversiones?

  2. Genís wrote
    at 17:12 :20 - 26th noviembre 2007 Permalink

    Buen comentario y también lo había planteado. Además podría haber añadido la opción de que guardase todas las fechas en utc desde el environment.rb. Pero empecé guardando todas las fechas localmente y ahora tome este camino. Quizás más complicado, pero también posible.

    Gracias por tu opinión

Post a Comment

Your email is never published nor shared. Required fields are marked *

Get Adobe Flash playerPlugin by wpburn.com wordpress themes