21

在 Rails 中,我对何时使用 DateTime.now.utc 和 Time.current 之间的指导有点困惑。框架内部似乎对哪个最好有不同的看法,尤其是在不同的版本中。

它看起来像DateTime.now.utc产生一个UTC 偏移量为零的时间戳,而Time.current.utc产生一个时区为 UTC的时间戳。这似乎是一个微妙的区别,但在许多情况下(例如 DST 计算)非常重要。

你应该什么时候使用DateTime.now.utc,什么时候应该使用Time.current.utc?有什么理由使用DateTime.now.utc代替Time.current.utc吗?

4

1 回答 1

55

我认为你应该使用.current而不是.now.

.current和的区别.now在于.now使用服务器的时区,而.current使用 Rails 环境设置的时区。如果未设置,则.current.now.

时间.电流

在设置Time.zoneconfig.time_zone时返回Time.zone.now,否则只返回Time.now

日期时间.当前

设置Time.zoneconfig.time_zone时返回Time.zone.now.to_datetime ,否则返回Time.now.to_datetime

于 2012-10-05T14:52:51.447 回答