如何比较json解析时间与ruby对象时间?

时间:2016-09-15 18:04:50

标签: ruby-on-rails ruby

我有一些控制器测试,我想检查响应值。我无法将JSON.parse(...["start_time"])foo.start_time与以下堆栈跟踪进行比较:

   expected: 2016-09-17 10:50:00.000000000 +0000
        got: "2016-09-17T10:50:00.000Z"

我尝试了一堆解析技术,但它们要么返回不同的格式,要么不返回准确的值。有没有一种简单的方法可以将这些值用于相同的格式以比较相等性?

1 个答案:

答案 0 :(得分:1)

您正在尝试比较两种不同的数据类型。解析的JSON是一个字符串。 foo.start_time属性是Ruby日期时间。

执行以下操作:

(JSON.parse(...["start_time"])).to_datetime

这会将字符串转换为日期时间,然后可以将其与foo.start_time进行比较。