Ruby on rails 3 RubyonRails3:如何覆盖/更改ActiveSupport::TimeWithZone的as_json序列化?
当Rails3将ActiveSupport::TimeWithZone序列化为json时,日期如下所示: “2011-07-20T23:59:00-07:00” 。。。应该是 “2011-07-20T23:59:00-0700” 最后一个冒号在尝试使用。。。它们都不能解释冒号的用法 所以我的问题是,“如何覆盖/更改TimeWithZone的序列化,以便as_json返回一个可以使用标准日期格式模式理解的有效字符串?” 现在我必须在我的客户端应用程序中去掉最后一个冒号,但这看起来很糟糕。它是一个冒号,但嘿,它是Ruby,这是允许的Ruby on rails 3 RubyonRails3:如何覆盖/更改ActiveSupport::TimeWithZone的as_json序列化?,ruby-on-rails-3,json,datetime,serialization,timezone,Ruby On Rails 3,Json,Datetime,Serialization,Timezone,当Rails3将ActiveSupport::TimeWithZone序列化为json时,日期如下所示: “2011-07-20T23:59:00-07:00” 。。。应该是 “2011-07-20T23:59:00-0700” 最后一个冒号在尝试使用。。。它们都不能解释冒号的用法 所以我的问题是,“如何覆盖/更改TimeWithZone的序列化,以便as_json返回一个可以使用标准日期格式模式理解的有效字符串?” 现在我必须在我的客户端应用程序中去掉最后一个冒号,但这看起来很糟糕。它是一个冒
module ActiveSupport
class TimeWithZone
def to_json
super.gsub(/:(?!.*:)/,'')
end
end
end
通过运行测试:
Time.zone = 'Eastern Time (US & Canada)'
Time.zone.now.to_json # Outputs -> 2011-09-22T16:46:28-0400