Quand doit - `DateTime.maintenant.utc` vs. `Temps.actuel.utc` être utilisé dans les Rails?

Dans les Rails, je suis un peu confus sur l'orientation entre le moment de l'utiliser DateTime.maintenant.l'utc et l'Heure.actuel. Il semble y avoir des divergences d'opinion à l'intérieur du cadre sur lequel est le mieux, surtout dans les différentes versions.

Il ressemble DateTime.now.utc produit un horodatage avec un UTC décalage de zéro, tandis que Time.current.utc produit un horodatage avec un fuseau horaire UTC. Cela semble être une distinction subtile, mais il est assez important dans de nombreux cas (par exemple, l'heure d'été calculs).

Quand devez-vous utiliser DateTime.now.utc, et quand devez-vous utiliser Time.current.utc? Est-il une raison pour utiliser DateTime.now.utc au lieu de Time.current.utc?

Pouvez-vous donner un exemple où il fait une différence? Étant donné que l'heure UTC n'a pas de tout à l'heure d'été transitions, sûrement, il ne fait une différence lorsque vous commencez à utiliser d'autres zones de temps... (je ne sais pas Ruby, mais j'ai fait un peu de la date/le temps des trucs, donc avec plus de fond je suis peut-être en mesure de vous aider.)
Je ne sais pas si cela fait une différence. (C'est pourquoi je demande à laquelle je devrais être à l'aide!) DateTime.now.utc première invoque DateTime.now, puis renverse le décalage UTC pour arriver à "UTC" du temps. Donc d'avis qu'il ne se traduit pas entre fuseaux horaires, mais plutôt entre décalages. Peut-être problématique dans les cas limites, par exemple, l'infâme 1927-1928 exemple à Shanghai?
Sauf si vous êtes réellement dans l'UTC, puis DateTime.now et Time.current la fois de produire une, heure locale, dans autre chose que de l'UTC. En d'autres termes, ils semblent diffèrent dans leurs approches sur la façon de se convertir à l'UTC -- on le fait en appliquant un décalage carrément; l'autre est-il que le fait de refaire le fuseau horaire calculs dans le nouveau fuseau horaire UTC.
Les deux semblent être un peu cassé, pour être honnête, l'obtention de l'heure UTC actuelle par le heure locale, conduit à l'ambiguïté, à moins que Time.current se souvient de son décalage d'origine de l'UTC...

OriginalL'auteur John Feminella | 2012-10-05