我不想要Active Support的默认JSON格式。所以我把代码放在我的项目的app.rb中。第一个月
它将时间格式从iso8601
更改为strftime('%Y/%m/%d %H:%M:%S %z')
。但我想改变时间格式strftime('%Y-%m-%d %H:%M:%S %z')
。
Time.now.to_json => output "2016/06/20 10:57:43 +0300" but i want to format "2016-06-20 10:57:43 +0300"
字符串
我的项目是辛纳屈的Ruby。
2条答案
按热度按时间kx7yvsdv1#
你把代码放在哪里?
字符串
请尝试:https://stackoverflow.com/a/18360367/2245697
mfuanj7w2#
你必须覆盖
ActiveSupport::TimeWithZone#as_json
。例如,使用Rails而不是Sinatra:字符串
原因是源
as_json
方法只接受两种可能性:启用iso8601,此时使用iso8601
,或禁用iso8601,此时使用"%Y/%m/%d %H:%M:%S"
:型
(note:
xmlschema
是iso8601
的别名)我在运行从Rails3.2到4.0的升级时遇到了这个问题,它的副作用是将所有序列化的时间戳从0位精度的ISO 8601格式更改为3位精度。不幸的是,Rails从4.1开始只允许您自己配置精度,所以我不得不完全覆盖该方法。