3

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

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

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

4

2 回答 2

8

根据文档

时间在内部存储为自 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 上工作)

于 2012-04-14T11:21:52.187 回答
5

来自时间文档:

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

例子:

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

=> "1334402161.334542"
于 2012-04-14T11:16:26.973 回答