我的iOS开发人员要求我将JSON结构中的所有时间戳都提供为Unix时间戳,作为自" 00:00:00协调世界时(UTC),星期四,1之后经过的秒数1970年1月",不计算闰秒。
看到我的所有数据都存储在服务器上的字符串中,我想创建一个方法,将所有时间戳转换为Unix时间戳作为整数。
换句话说,我需要转换:
{
"created_at" => "2015-01-18T00:58:58.903Z",
"updated_at" => "2015-01-18T00:58:58.903Z",
"user_id" => 1,
"status_id" => 1
}
为:
{
"created_at" => 1421542604,
"updated_at" => 1421542604,
"user_id" => 1,
"status_id" => 1
}
答案 0 :(得分:2)
我编写了以下rspec,然后意识到我需要修改默认的as_json
方法来执行此转换:
expect(response_json).to eq(
{
'created_at' => user.created_at.as_json,
'updated_at' => user.updated_at.as_json,
'user_id' => user.user_id,
'status_id' => user.status_id
}
)
然后我创建了/config/initializers/unix_timestamps.rb
并且它有效:
class ActiveSupport::TimeWithZone
def as_json
self.to_time.to_i
end
end