【发布时间】:2017-08-29 07:32:14
【问题描述】:
我确实有一个包含时间戳的 postgres 数据库。此时间戳遵循 ISO 标准,如下所示:
2017-08-28 20:14:45.684926+00
我使用 ActiveRecord 从 Ruby/Sinatra 环境访问数据库,但返回的 ts 是 ISO8601。
有没有办法强制格式化为 ISO 而不是 ISO8601?
我想避免在收到数据后解析。
现在,我正在使用命令:
class ApiResponse < ActiveRecord::Base
class << self
def send_query(user, params)
limit = params.include?('limit') ? params['limit'] : 50
where_params = {
userid: user,
allowed_intent: true
}
ApiResponse.select([:id, :ts, :userid, :intent, :response])
.where(where_params)
.order(ts: :desc)
.limit(limit).to_a
end
end
ApiResponse 类用于通过 ActiveRecord 访问数据库,它工作正常。但格式不正确。它显示:
2017-08-29T05:58:44.488Z
而不是类似的东西
2017-08-28 20:14:45.684926+00
这种格式的 ISO 是 db 中的一种
知道如何在 ActiveRecord 调用中正确格式化时间戳 ts 吗?
【问题讨论】:
-
什么是时间戳? ISO和iso有什么区别?什么是ts? iso8601和ISO8601有什么区别?
-
什么是非ISO8601的iso格式,你想要的格式是什么?
-
@sawa ISO8601 看起来像:“2017-08-29T05:58:44.488Z”,Postgres Db 使用的 ISO 看起来像:“2017-08-28 20:14:45.684926+00”
-
@sawa 在 postgres 中,时间戳用于定义您创建元素的日期/时间
-
“有什么想法吗?”在 SO 上不是一个有效的问题。
标签: ruby-on-rails ruby postgresql activerecord rails-activerecord