【问题标题】:Rails JSON and XML Serialization include Micro SecondsRails JSON 和 XML 序列化包括微秒
【发布时间】:2011-05-30 10:08:14
【问题描述】:

在为“日期时间”字段序列化 Rails 对象时是否可以包含微秒?例如:

{ 
  "created_at":"2011-05-27T19:49:43.123456Z", 
  "updated_at":"2011-05-27T19:49:43.654321Z", 
  "..."
}

【问题讨论】:

    标签: ruby-on-rails ruby xml json


    【解决方案1】:

    您需要覆盖在this file 中设置的默认 JSON 格式。 您要使用的格式是这样的

    strftime('%Y/%m/%d %H:%M:%S.%6N %z')
    

    您可以像这样修补 JSON 的 DateTime 输出

    class DateTime
      def as_json(options = nil)
        strftime('%Y/%m/%d %H:%M:%S.%6N %z')
      end
    end
    

    这里是 strftime() 中可用的小数时间参考的参考 %N - 小数秒位数,默认为 9 位数(纳秒)

    %3N millisecond (3 digits)
    %6N microsecond (6 digits)
    %9N nanosecond (9 digits)
    

    【讨论】:

    • 我正在使用存储微秒的数据库。我只需要序列化。
    • 它是否以微秒的形式存储在数据库中?
    • 是的。 user.created_at.usec = 123456user.updated_at.usec = 654321
    • 好的,谢谢你的澄清,我会看看我能在这里找到什么。
    • 好吧,看来 to_json 默认使用 ISO_8601。您想覆盖此处设置的默认格式github.com/rails/rails/blob/master/activesupport/lib/…
    猜你喜欢
    • 1970-01-01
    • 2012-02-09
    • 2015-11-03
    • 2023-03-09
    • 1970-01-01
    • 2011-12-10
    • 2015-12-27
    • 2020-03-24
    • 2021-05-29
    相关资源
    最近更新 更多