Ruby-比Time.now.utc更准确的时间戳

Ruby-比Time.now.utc更准确的时间戳,ruby,Ruby,通常我在项目中使用Time.now.utc作为时间戳。但这一次,仅仅使用time.now.utc似乎不够精确 看来Time.now.utc处于第二级(正确吗?),没有我想要的那么准确 有没有办法在毫秒级生成时间戳?来自文档: 创建的对象将使用系统时钟上可用的分辨率创建,因此可能包括小数秒 示例: a = Time.new "%.6f" % a.to_f => "1334402161.334542" 根据: 时间在内部存储为自1970年1月1日00:00 UTC的纪元以来的秒数(带分数

通常我在项目中使用
Time.now.utc
作为时间戳。但这一次,仅仅使用
time.now.utc
似乎不够精确

看来
Time.now.utc
处于第二级(正确吗?),没有我想要的那么准确

有没有办法在毫秒级生成时间戳?

来自文档:

创建的对象将使用系统时钟上可用的分辨率创建,因此可能包括小数秒

示例:

a = Time.new 
"%.6f" % a.to_f

=> "1334402161.334542"
根据:

时间在内部存储为自1970年1月1日00:00 UTC的纪元以来的秒数(带分数)

您可以使用以下方法访问内部浮点表示,例如

irb> Time.now.to_f
=> 1334401921.06418
或者您可以使用该方法将其打印出来,例如:

irb> Time.now.strftime("%Y-%m-%d %H:%M:%S.%L")
=> "2012-04-14 21:20:58.100"

(至少在理论上,我无法让
%L
在Ruby 1.8上运行,但它在Ruby 1.9上运行)

为了获得更高的精度,您可以使用(例如)6位(微秒)的
%6N
。显示24位(秒)的最大精度,但如果需要,可以执行
%1000N
。当然,您的CPU甚至无法在这段时间内执行一条指令,Ruby增加了大量开销,因此,高精度只是理论上的。