class ActiveSupport::TimeZone

def utc_to_local(time)

See the +utc_to_local_returns_utc_offset_times+ config for more info.
As of tzinfo 2, utc_to_local returns a Time with a non-zero utc_offset.

Time#in_time_zone() instead.
-- if you want an ActiveSupport::TimeWithZone instance, use
represented by +self+. Returns a local time with the appropriate offset
Adjust the given time to the simultaneous time in the time zone
def utc_to_local(time)
  tzinfo.utc_to_local(time).yield_self do |t|
    ActiveSupport.utc_to_local_returns_utc_offset_times ?
      t : Time.utc(t.year, t.month, t.day, t.hour, t.min, t.sec, t.sec_fraction * 1_000_000)
  end
end