instance method to_formatted_s

Ruby on Rails 4.1.16

Since v3.0.20

Available in: v3.0.20 v3.1.12 v3.2.22.5 v4.0.13 v4.1.16 v4.2.9 v5.2.8.1 v6.0.6 v6.1.7.10 v7.0.10 v7.1.6 v7.2.3 v8.0.4 v8.1.2

Signature

to_formatted_s(format = :default)

Converts to a formatted string. See DATE_FORMATS for builtin formats.

This method is aliased to to_s.

time = Time.now                    # => Thu Jan 18 06:10:17 CST 2007

time.to_formatted_s(:time)         # => "06:10"
time.to_s(:time)                   # => "06:10"

time.to_formatted_s(:db)           # => "2007-01-18 06:10:17"
time.to_formatted_s(:number)       # => "20070118061017"
time.to_formatted_s(:short)        # => "18 Jan 06:10"
time.to_formatted_s(:long)         # => "January 18, 2007 06:10"
time.to_formatted_s(:long_ordinal) # => "January 18th, 2007 06:10"
time.to_formatted_s(:rfc822)       # => "Thu, 18 Jan 2007 06:10:17 -0600"
time.to_formatted_s(:iso8601)      # => "2007-01-18T06:10:17-06:00"

Adding your own time formats to to_formatted_s

You can add your own formats to the Time::DATE_FORMATS hash. Use the format name as the hash key and either a strftime string or Proc instance that takes a time argument as the value.

# config/initializers/time_formats.rb
Time::DATE_FORMATS[:month_and_year] = '%B %Y'
Time::DATE_FORMATS[:short_ordinal]  = ->(time) { time.strftime("%B #{time.day.ordinalize}") }

Parameters

format opt = :default
Source
# File activesupport/lib/active_support/core_ext/time/conversions.rb, line 48
  def to_formatted_s(format = :default)
    if formatter = DATE_FORMATS[format]
      formatter.respond_to?(:call) ? formatter.call(self).to_s : strftime(formatter)
    else
      to_default_s
    end
  end

Defined in activesupport/lib/active_support/core_ext/time/conversions.rb line 48 · View on GitHub · Improve this page · Find usages on GitHub

Defined in Time

Type at least 2 characters to search.

↑↓ navigate · open · esc close