def utc_to_local(utc_time)
      raise ArgumentError, 'utc_time must be specified' unless utc_time

      Timestamp.for(utc_time, :treat_as_utc) do |ts|
        to_local(ts)
      end
    end
def utc_to_local(utc_time)
      raise ArgumentError, 'utc_time must be specified' unless utc_time

      Timestamp.for(utc_time, :treat_as_utc) do |ts|
        to_local(ts)
      end
    end
Converts a time in UTC to the local time for the time zone.

 The result will be of type {TimeWithOffset} (if passed a `Time`),
 {DateTimeWithOffset} (if passed a `DateTime`) or {TimestampWithOffset} (if
 passed a {Timestamp}). {TimeWithOffset}, {DateTimeWithOffset} and
 {TimestampWithOffset} are subclasses of `Time`, `DateTime` and {Timestamp}
 that provide additional information about the local result.

 The UTC offset of the `utc_time` parameter is ignored (it is treated as a
 UTC time). Use the {to_local} method instead if the the UTC offset of the
 time needs to be taken into consideration.

 @param utc_time [Object] a `Time`, `DateTime` or {Timestamp}.
 @return [Object] the local equivalent of `utc_time` as a {TimeWithOffset},
   {DateTimeWithOffset} or {TimestampWithOffset}.
 @raise [ArgumentError] if `utc_time` is `nil`.