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 格式,那就太好了?

4

2 回答 2

2

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

会给你秒差,然后你可以从那里得到你需要的

seconds_difference / 1.day或者seconds_difference / 1.hour

于 2013-08-29T19:08:32.107 回答
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。

于 2013-09-02T05:31:38.963 回答