Миллисекундное разрешение DateTime в Ruby

У меня есть строка как2012-01-01T01:02:03.456 что я храню в базе данных Postgres TIMESTAMP с помощью ActiveRecord.

К сожалению, Ruby, похоже, отрубает миллисекунды:

ruby-1.9.3-rc1 :078 > '2012-12-31T01:01:01.232323+3'.to_datetime
 => Mon, 31 Dec 2012 01:01:01 +0300 

Postgrs поддерживает микросекундное разрешение. Как я могу соответственно сохранить свою метку? Мне нужно хотя бы разрешение в миллисекундах.

(PS Да, я мог бы взломать столбец с целочисленными значениями в миллисекундах в postgres; такой вид побеждает всю цель ActiveRecord.)

ОБНОВИТЬ:

Очень полезные ответы показали, что РубиDateTime являетсяне отрубать миллисекунды; с помощью#to_f показывает это. Но, делая:

m.happened_at = '2012-01-01T00:00:00.32323'.to_datetime
m.save!
m.reload
m.happened_at.to_f

Удаляет миллисекунды.

Теперь интересно то, чтоcreated_at показывает миллисекунды, как в Rails, так и в Postgres. Но другие поля отметок времени (например,happened_at выше) нет. (Возможно, Rails используетNOW() функция дляcreated_at в отличие от передачи в DateTime).

Что приводит к моему последнему вопросу:

Как я могу получить ActiveRecord для сохранения разрешения в миллисекундах в полях меток времени?

Ответы на вопрос(4)

Ваш ответ на вопрос