我有一个包含数十万首歌曲的歌曲模型,当我使用AR进行查询时,时间格式(渲染到json时)如下所示:2011-12-19T11:04:39Z。
当我使用Song.connection.execute()
执行查询时,渲染到json时返回的时间格式如下:2011-11-20 19:00:08.207467
我实际上更喜欢从connection.execute()
调用返回的原始格式。我该怎么做才能让AR始终不转换呢?我该如何设置正确的时区等?
我基本上希望通过原始数据库调用和AR来确保它始终采用相同的格式。
答案 0 :(得分:1)
编辑您的区域设置文件并根据需要设置日期和时间格式
en:
date:
formats:
default: "%Y-%m-%d %H:%M:%S.%Z"
short: "%d %b"
long: "%d %B %Y"
语法是strftime
的语法答案 1 :(得分:1)
我会采取另一种方式:我更喜欢AR转换为/免费提供的格式。原因是配置格式会更容易(为此,参见例如to_formatted_s
)。
要实现这一点,您必须避免使用connection.execute
,而是始终使用YourModel.find_by_sql
- 您将获得一组YourModel实例,并正确转换所有属性。有关详细信息,请参阅文档:ri find_by_sql
答案 2 :(得分:0)