Active Model DateTime Type

Attribute type to represent dates and times. It is registered under the :datetime key.

class Event
  include ActiveModel::Attributes

  attribute :start, :datetime
end

event = Event.new
event.start = "Wed, 04 Sep 2013 03:00:00 EAT"

event.start.class # => Time
event.start.year  # => 2013
event.start.month # => 9
event.start.day   # => 4
event.start.hour  # => 3
event.start.min   # => 0
event.start.sec   # => 0
event.start.zone  # => "EAT"

String values are parsed using the ISO 8601 datetime format. Partial time-only formats are also accepted.

event.start = "06:07:08+09:00"
event.start.utc # => 1999-12-31 21:07:08 UTC

The degree of sub-second precision can be customized when declaring an attribute:

class Event
  include ActiveModel::Attributes

  attribute :start, :datetime, precision: 4
end

Methods

Included Modules

Instance Public methods

type()

📝 Source code
# File activemodel/lib/active_model/type/date_time.rb, line 49
      def type
        :datetime
      end
🔎 See on GitHub