Rails重新格式化我的日期时间

时间:2016-12-02 12:38:17

标签: ruby-on-rails datetime

我有一个大查询,它收集了一组模型,我需要按以下方式格式化时间戳:YYYY-MM-DDTHH:MI:SS.MSZ

所以,我的查询如下:

models.select("(to_char(created_at, 'YYYY-MM-DD') || 'T' || to_char(created_at, 'HH24:MI:SS.MSZ')) AS created_at").as_json

但是,当我得到结果时,我仍然得到created_at字段作为DateTime对象。 不过,如果我用其他内容重命名该字段,例如AS something_else,那么我就有了我所需的格式。

如何解决问题,以便以我的格式返回created_at,而不会遍历整个集合,并格式化每个模型?

更新

我使用的数据库是PostreSQL

我将此行为追溯到ActiveSupport :: JSON :: Encoder。我使用gem activesupport-json_encoder因为我需要设置ActiveSupport.encode_big_decimal_as_string = false,而自Rails 4.1以来它们默认编码为字符串。

现在,此编码器将created_atupdated_at字段编码为ActiveSupport :: TimeWithZone。 我可以以某种方式摆脱后者吗?

0 个答案:

没有答案