with timezones test rails how define ruby-on-rails ruby time timezone

ruby on rails - timezones - DateTime.now o Time.now?



rails timezone (3)

¿Cuál de los dos debería usar en mi aplicación Rails?

DateTime.now or Time.now

¿Hay algún daño al usar ambos en la aplicación?

¿Puede haber alguna diferencia entre los dos en el caso del ejemplo anterior ( now )? (En mi sistema actual ambos muestran el mismo tiempo)


En referencia a Time.now (no DateTime.now ):

El objeto creado se creará usando la resolución disponible en el reloj de su sistema, y ​​puede incluir segundos fraccionarios.

a = Time.new #=> Wed Apr 09 08:56:03 CDT 2003 b = Time.new #=> Wed Apr 09 08:56:03 CDT 2003 a == b #=> false "%.6f" % a.to_f #=> "1049896563.230740" "%.6f" % b.to_f #=> "1049896563.231466"


Si desea obtener el tiempo en la zona horaria de la aplicación, deberá llamar a Time.zone.now , así que eso es lo que generalmente uso.

Time.now y DateTime.now devolverán una hora en el tiempo del sistema, que a menudo se establece en UTC.


Use (Date)Time.current lugar de (Date)Time.now

Rails amplía los objetos Time y DateTime , e incluye la propiedad current para recuperar el tiempo en que el entorno Rails está configurado (predeterminado = UTC), a diferencia de la hora del servidor (podría ser cualquier cosa).

Esto es fundamental: siempre debe trabajar en horario UTC, excepto al convertir zonas horarias para la entrada o visualización del usuario, pero muchos sistemas de producción no son UTC de forma predeterminada. (por ejemplo, Heroku está configurado para PST (GMT -8))

Ver artículo here