TL; DR:
HH:MM:SS.ms
我需要了解和之间HH:MM:SS.ms
的区别HH:MM:SS:ms
我需要的:
这是一个棘手的问题。我正在尝试计算两个时间戳之间的差异,如下所示:
In: 00:00:10.520
Out: 00:00:23.720
应交付:
Diff: 00:00:13.200
我想我会将时间解析为实际Time
对象并使用其中的差异。这在前一种情况下效果很好,并返回00:0:13.200
.
什么不起作用:
但是,对于某些人来说,这不起作用,因为 Ruby 使用usec
而不是msec
:
In: 00:2:22.760
Out: 00:2:31.520
Diff: 00:0:8.999760
显然,区别应该是00:00:8:760
而不是00:00:8.999760
。我真的很想tdiff.usec.to_s.gsub('999','')
……
到目前为止我的代码:
到目前为止,这是我的代码(这些是从“0:00:10:520”之类的输入字符串中解析出来的)。
tin_first, tin_second = ins.split(".")
tin_hours, tin_minutes, tin_seconds = tin_first.split(":")
tin_usec = tin_second * 1000
tin = Time.gm(0, 1, 1, tin_hours, tin_minutes, tin_seconds, tin_usec)
同样的情况发生在tout
. 然后:
tdiff = Time.at(tout-tin)
对于输出,我使用:
"00:#{tdiff.min}:#{tdiff.sec}.#{tdiff.usec}"
有没有更快的方法来做到这一点?请记住,我只是想要两次之间的差异。我错过了什么?
我目前正在使用 Ruby 1.9.3p6。