2016-09-06 14 views
5

रूबी में, मिलीसेकंड में युग (1 9 70) के बाद से वर्तमान सिस्टम समय प्राप्त करने का सही तरीका क्या है?मिलीसेकंड में वर्तमान सिस्टम समय प्राप्त करें

मैंने Time.now.to_i की कोशिश की, ऐसा नतीजा नहीं है कि मैं चाहता हूं। मुझे परिणाम मिलीसेकंड दिखाता है और long प्रकार के साथ, float या double नहीं है।

उत्तर

5
(Time.now.to_f * 1000).to_i 

Time.now.to_f आपको दशमलव संख्या सहित समय दिखाता है। मिलीसेकंड की संख्या प्राप्त करने के लिए केवल 1000 तक गुणा करें।

3

आप to_i और usec को जोड़ सकते हैं।

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

ऊपर की तरह कुछ मामलों में, to_f एक मामूली परिचय होगा:

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

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

यह बराबर करने के लिए है: पूर्व रिटर्न युग के बाद से सेकंड की संख्या, बाद माइक्रोसेकंड की संख्या देता है फ्लोटिंग पॉइंट त्रुटि:

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

आप मूल्य को गोल करके फ़्लोटिंग पॉइंट को ठीक कर सकते हैं। यह फ्लोट वैल्यू को int में भी परिवर्तित करेगा। '(Time.now.to_f * 1000) .round' –

+1

@ kallax जो' Time.at (1473152006, 999) के लिए असफल होगा – Stefan

संबंधित मुद्दे