如何将时间以秒为单位转换为标准时间格式?
答
没有帮手为你的导轨。但它很容易编写自己:
def to_dot_time(s)
h = s/3600
s -= h * 3600
m = s/60
s -= m * 60
[h, m, s].join(":")
end
和示例:
>> to_dot_time(1971)
=> "0:32:51"
+1
也不是说你的问题中的0:33:25在1971秒内是错误的。或者您是否使用其他方法来计算该值? – Ariejan 2010-10-27 12:17:41
答
虽然Ariejan的回答是完全OK,仅供参考我点到另一个,在Ruby-doc Time class docs给予(滚动至底部,搜索其他注释)。总之,有一个数字转换成时间实例的方法:
Time.at(number)
这反过来又可以使用strftime "%T"
呈现。警告:据我所知,它不会显示超过23小时的Time实例。
+0
这提供绝对时间,而提问者询问相对时间。 – 2014-08-18 15:18:47
我认为你的计算部分是错误的。见1971/60给你一个值32.85。这并不意味着32分钟和85秒,但它意味着32分钟加上0.85分钟,这等于51秒。这意味着1971秒会给你32.51秒。因此,我认为@ Ariejan的答案是正确的,虽然我没有测试过,我也不能保证它是完美的解决方案。 – Rohit 2010-10-27 12:41:09
@ user475748我认为你必须接受@Ariejan的答案。我对它进行了测试,并且它按照您的要求正常工作。 – Rohit 2010-10-27 12:50:25