在我更新Rails之前,API返回的默认时间格式为yyyy-MM-dd'T'HH:mm:ss'Z'
。现在它返回yyyy-MM-dd'T'HH:mm:ss:sss'Z'
。由于依赖旧时格式的应用程序,我想要将其更改回来。如何更改Time::DateTime
' to_s
方法返回的PROJECT默认格式?
编辑:
我应该提一下,我开始使用active_model_serializer
宝石。不确定这是否有所作为。我的猜测是从Rails 4.0.x更新到4.1.x之后发生了这种变化。另外,我想为项目更改此格式。这种格式在Rails版本之间改变了。 active_model_serializer
使用to_s
,因此覆盖如何设置此项更有意义。我不知道那是哪里。
答案 0 :(得分:0)
答案 1 :(得分:0)
也许您需要这个:
# config/initializers/time_with_zone.rb
module ActiveSupport
class TimeWithZone
def as_json(options = nil)
iso8601
end
end
end
答案 2 :(得分:0)
您可以扩充 Ruby 内置的 Date::DATE_FORMATS
和 Time::DATE_FORMATS
DATE_FORMAT = "%m/%d/%Y".freeze
TIME_FORMAT = "#{DATE_FORMAT} %l:%M%P".freeze
format_defaults = {
default: DATE_FORMAT,
date_time12: TIME_FORMAT,
date_time24: "#{DATE_FORMAT} %H:%M",
}.freeze
Date::DATE_FORMATS.merge!(format_defaults)
Time::DATE_FORMATS.merge!(format_defaults)