2013-08-29 1 views
0

У меня есть два формата времени для вычисления разницы.Рассчитать общее время в минутах между двумя таймингами в двух разностях. (UTC и IST) - Rails 3.2.13

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 оказывается неверным. Пожалуйста, посмотрите, и было бы здорово, если бы вы могли рассказать мне, как мы можем преобразовать формат UTC в формат +5.30 в Rails 3.2?

+0

Вы проводите сравнение строк, а не дату –

+0

Как предлагает @FrederickCheung, ваша проблема в том, что сравнение фактической строки, а не использование класса 'Time' для сравнения для вас. Если вы сделаете так, как я предлагаю ниже, и установите @a и @b на экземпляры Time, вам должно быть хорошо идти – cmwright

ответ

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

+0

, почему мы вычитаем более высокую дату с более низкой даты? Также может быть разница между двумя вышеуказанными форматами? –

+0

Вы можете переключить заказ, если хотите, но если вы хотите получить абсолютный результат (всегда положительный), вы хотите называть '.abs' на нем – cmwright

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.

+0

да, я согласен. Не могли бы вы рассказать мне, как я могу конвертировать время в формате UTC в формат +0530 (в Rails конкретно)? –

Смежные вопросы