本文介绍了使Rails在显示日期时忽略夏令时的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的Rails应用中存储了UTC的日期,并尝试将其显示给具有 c> cst =nofollow> dst?以检查传递的时区当前是否处于DST。如果是,则从提供的 DateTime 实例中减去一个小时:

Create a helper that utilizes the dst? method on TimeZone to check whether the passed timezone is currently in DST. If it is, then subtract an hour from the supplied DateTime instance:

# helper function
module TimeConversion
  def no_dst(datetime, timezone)
    Time.zone = timezone

    if Time.zone.now.dst?
        return datetime - 1.hour
    end

    return datetime
  end
end

然后,在您的视图中渲染调整(或未调整)的时间:

Then, render the adjusted (or non-adjusted) time in your view:

# in your view
<%= no_dst(DateTime.parse("2013-08-26T00:00:00Z"), 'Eastern Time (US & Canada)') %>
#=> Sun, 25 Aug 2013 19:00:00 EDT -04:00

这篇关于使Rails在显示日期时忽略夏令时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-19 09:24