标签: ruby
在Ruby中,从(1970)开始以毫秒获取当前系统时间的正确方法是什么?
我试过Time.now.to_i,这似乎不是我想要的结果。我需要结果显示毫秒和long类型,而不是float或double。
Time.now.to_i
long
float
double
答案 0 :(得分:5)
(Time.now.to_f * 1000).to_i
Time.now.to_f显示包含小数的时间。要获得毫秒数,只需将时间乘以1000。
Time.now.to_f
答案 1 :(得分:5)
您可以合并to_i和usec。前者返回自Epoch以来的秒数,后者返回微秒数:
to_i
usec
require 'time' t = Time.at(1473152006, 2000) t.to_i * 1000 + t.usec / 1000 #=> 1473152006002
这相当于:
t.strftime('%s%L') #=> "1473152006002"
在上述某些情况下,to_f会引入轻微的浮点错误:
to_f
t.to_f * 1000 #=> 1473152006001.9998 (t.to_f * 1000).to_i #=> 1473152006001