Time.at is inaccurate
I believe I have found an issue with Time.at. Many runtimes and DBs use milliseconds since epoch for recording time. Currently, the only way to generate a Time in ruby with milliseconds is:
Time.at(milliseconds / 1000.0)
However, this is inaccurate:
> Time.at(1381089302195 / 1000.0).to_f => 1381089302.1949997 > Time.at(1381089302195 / 1000.0).strftime('%3N') => "194"
This doesn't make much sense because you would expect:
> 1381089302195 / 1000.0 => 1381089302.195 > (1381089302195 / 1000.0).to_f => 1381089302.195
It seems that somewhere in the MRI, someone is using floating-point math to represent a Time.
Is there any other way (workaround) to construct Time with millisecond accuracy?