From: davidm@... Date: 2014-11-26T19:14:50+00:00 Subject: [ruby-core:66494] [ruby-trunk - Feature #10544] Time#to_i(:millisecond) Issue #10544 has been updated by David MacMahon. How about a more general `Time#to_i(scale=1)`? Examples: * Passing `1` for `scale` (or passing nothing) would return seconds. * Passing `1000` for `scale` would return milliseconds. * Passing `1/60r` for scale would return minutes. Masaki Matsushita wrote: > > ~~~ruby > milliseconds = (time.to_i * 1000) + (time.usec / 1000.0).round > ~~~ IMHO, it is generally preferable to avoid time travel by truncating to the beginning of the "present" millisecond rather than possibly rounding to the beginning of the "future" millisecond. ---------------------------------------- Feature #10544: Time#to_i(:millisecond) https://bugs.ruby-lang.org/issues/10544#change-50110 * Author: Masaki Matsushita * Status: Open * Priority: Normal * Assignee: * Category: core * Target version: next minor ---------------------------------------- Currently, we have to take an indirect way to get unix_time in milliseconds. ~~~ruby time = Time.now milliseconds = (time.to_i * 1000) + (time.usec / 1000.0).round ~~~ I think it would be convenient if `Time#to_i` accepts unit parameter like following. ~~~ruby time = Time.now milliseconds = time.to_i(:millisecond) ~~~ ---Files-------------------------------- patch.diff (2.71 KB) -- https://bugs.ruby-lang.org/