Time.parse
может обрабатывать часовые пояса без проблем:
2.5.1 :001 > require 'time'
=> true
2.5.1 :002 > t1 = Time.parse('2019-05-30T19:37:18+00:00')
=> 2019-05-30 19:37:18 +0000
2.5.1 :003 > t2 = Time.parse('2019-05-30T19:37:30+05:30')
=> 2019-05-30 19:37:30 +0530
2.5.1 :004 > t1 > t2
=> true
2.5.1 :005 > t2 > t1
=> false
2.5.1 :006 > t1 == t2
=> false
2.5.1 :007 > t1 - t2
=> 19788.0 # result is in seconds, convert to whatever you need
Предполагая, что вы уже объявили эти две переменные как DateTime
экземпляры, где t1
равно 2019-05-30T19:37:18+00:00
, а t2
равно 2019-05-30T19:37:30+05:30
, вы можете напрямую запускать сравнения и получать результаты в считанные секунды, используя .to_time
2.5.1 :009 > t1 > t2
=> true
2.5.1 :010 > t2 > t1
=> false
2.5.1 :011 > t1 == t2
=> false
2.5.1 :012 > t1.to_time - t2.to_time
=> 19788.0