获取当前系统时间(以毫秒为单位)

时间:2016-09-06 08:35:13

标签: ruby

在Ruby中,从(1970)开始以毫秒获取当前系统时间的正确方法是什么?

我试过Time.now.to_i,这似乎不是我想要的结果。我需要结果显示毫秒和long类型,而不是floatdouble

2 个答案:

答案 0 :(得分:5)

(Time.now.to_f * 1000).to_i

Time.now.to_f显示包含小数的时间。要获得毫秒数,只需将时间乘以1000。

答案 1 :(得分:5)

您可以合并to_iusec。前者返回自Epoch以来的秒数,后者返回微秒数:

require 'time'
t = Time.at(1473152006, 2000)

t.to_i * 1000 + t.usec / 1000
#=> 1473152006002

这相当于:

t.strftime('%s%L')
#=> "1473152006002"

在上述某些情况下,to_f会引入轻微的浮点错误:

t.to_f * 1000
#=> 1473152006001.9998
(t.to_f * 1000).to_i
#=> 1473152006001