计算两个差异中两个时间之间的总时间(分钟)。时区(UTC和IST) - Rails 3.2.13

时间:2013-08-29 19:02:58

标签: ruby-on-rails time ruby-2.0

我有两种日期时间格式来计算差异。

2013-08-29 22:48:00 UTC
2013-08-30 00:18:40 +0530

如何从第二个减去第一个?除了时间之外,它们之间的实际区别是什么?

以下是我在控制台中运行的内容:

Loading development environment (Rails 3.2.13)

2.0.0-p247 :001 > @a = Time.parse('2013-08-29 22:48:00 UTC')
 => 2013-08-29 22:48:00 UTC 
2.0.0-p247 :002 > @b = Time.parse('2013-08-29 22:48:00 +0530')
 => 2013-08-29 22:48:00 +0530 
2.0.0-p247 :003 > @a > @b
 => true 
2.0.0-p247 :004 > @a == @b
 => false 
2.0.0-p247 :005 > @a < @b
 => false 
2.0.0-p247 :006 > 

两者都不一样,因此发现cmwright的答案不正确。请看一下,如果您能告诉我如何在Rails 3.2中将UTC格式转换为+5.30格式,那将会很棒?

2 个答案:

答案 0 :(得分:2)

seconds_difference = Time.parse('2013-08-29 22:48:00 UTC') - Time.parse('2013-08-30 00:18:40 +0530')

会给你几秒钟的差异,那么你可以通过

从那里得到你的需要

seconds_difference / 1.dayseconds_difference / 1.hour

答案 1 :(得分:1)

  

除了时间之外,它们之间的实际区别是什么?

好吧,一个日期是UTC(+00:00),另一个日期是UTC + 05:30。

  2013-08-29 22:48:00 UTC   =>     2013-08-30 04:18:00 +0530
- 2013-08-29 18:48:40 UTC   <=   - 2013-08-30 00:18:40 +0530
-------------------------        ---------------------------
              3:59:20                          3:59:20     

无论你转换哪个方向,它们都是3小时59分20秒。

CMWright的答案显示了如何在代码中减去它们。从Time.parse函数获得的整数都基于UTC。