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

时间:2012-04-14 11:06:14

标签: ruby

通常我使用Time.now.utc作为项目中的时间戳。但这一次看起来不够准确,只能使用Time.now.utc

看起来Time.now.utc在第二级(它是否正确?),并不像我想要的那样准确。

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

2 个答案:

答案 0 :(得分:6)

根据the documentation

  

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

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

irb> Time.now.to_f
=> 1334401921.06418

或者您可以使用strftime方法将其打印出来,例如:

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

(理论上至少,我不能让%L使用Ruby 1.8,但它确实适用于1.9)

答案 1 :(得分:5)

来自Time文档:

  

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

示例:

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

=> "1334402161.334542"