强制 Ruby 时间 class 使用 ISO8601

Forcing Ruby Time class to use ISO8601

如何在调用 to_s 时强制 Ruby 的 Time class 使用 ISO8601?

正如@DumpHole 提到的,您始终可以像这样覆盖 Time.to_s:

require 'time'    

class Time
  def to_s
    iso8601
  end
end

但是,您可能不想覆盖所有 Time 实例的 to_s。相反,您可以创建自定义包装器 class 并使用它:

require 'time'

class Iso8601Time < Time
  def to_s
    iso8601
  end
end

Iso8601Time.now.to_s #=> "2015-04-17T17:35:13-07:00"