我有两个日期是开始日期和结束日期。我想得到一个新的时间对象,这是两者之间的差异。我所关心的差异是小时,分钟,秒和毫秒。我需要能够从包含毫秒差异
的结果创建一个新的Time对象int()
我的问题是差异没有毫秒
我可以通过运行
看到时间有毫秒>> require 'time'
=> true
>> start_time = Time.parse '1970-01-01T00:00:00.200'
=> 1970-01-01 00:00:00 +0000
>> end_time = Time.parse '1970-01-01T01:01:01.400'
=> 1970-01-01 01:01:01 +0000
>> difference = Time.at(end_time - start_time)
=> 1970-01-01 01:01:01 +0000
但是如何访问时差对象中的毫秒数。
关键是我在亚秒计算中工作时有几毫秒?
我认为我对这个问题的第一次尝试并不像它应该的那样具有描述性,我为此道歉。
答案 0 :(得分:3)
require 'time'
a = Time.now
sleep(0.5)
b = Time.now
b - a
# => 0.505087
毫秒!
编辑:微秒!
答案 1 :(得分:2)
Ruby的Time
类具有纳秒精度:您可以使用Time#to_f
获得自Unix时代以来的小数秒。如果你减去两个Time
个对象,它们之间会得到一个小数秒。因此,要获得两次之间的毫秒数,请尝试:
((time2 - time1) * 1000).to_i
答案 2 :(得分:2)