उपयोग करके strftime, आप सेकंड की संख्या प्राप्त कर सकते हैं और आंशिक मिलिसेकंड (या यदि आवश्यक हो तो छोटी इकाइयां) जोड़ सकते हैं:
2.2.2 :001 > t = Time.new
=> 2015-06-02 12:16:56 -0700
2.2.2 :002 > t.strftime('%s%3N')
=> "1433272616888"
ध्यान दें कि यह गोल नहीं है, यह छोटा है, जैसा कि आप देख सकते हैं to_fया यदि आप माइक्रोसेकंड के लिए बाहर जाते हैं:
2.2.2 :003 > t.to_f
=> 1433272616.888615
2.2.2 :004 > t.usec
=> 888615
और to_f/ to_iसमाधान में एक ही समस्या है:
2.2.2 :009 > (t.to_f * 1000).to_i
=> 1433272616888
इसलिए यदि आप वास्तव में मिलीसेकंड सटीकता के बारे में परवाह करते हैं, तो बेहतर शर्त यह हो सकती to_fहै round:
2.2.2 :010 > (t.to_f * 1000).round
=> 1433272616889
यही कारण है, ने कहा कि के रूप में किए गए दस्तावेज़ों में बताया गया है , "आईईईई 754 डबल नहीं सटीक पर्याप्त युग के बाद से नैनोसेकंड की संख्या का प्रतिनिधित्व करने के लिए है" इसलिए यदि आप वास्तव में वास्तव में परवाह, पर विचार to_rकरने के बजाय to_f-
2.2.2 :011 > (t.to_r * 1000).round
=> 1433272616889
- यद्यपि यदि आप केवल मिलीसेकंड के लिए चक्कर लगा रहे हैं तो आप शायद ठीक हैं।