Можете ли вы иметь время без даты в рельсах?
Я пытаюсь импортировать некоторые данные из плоского файла и получаю некоторые нечетные результаты. При импорте времени, которое не привязано к дате, почему я также получаю дату, вставленную в это время?
1.9.3-p286 :008 > v.arrival_time = Time.parse("10:10")
=> 2012-11-06 10:10:00 -0400
Я предполагаю, что есть только способ сохранить дату сам по себе, но никоим образом не сохранить время самостоятельно, несмотря на активный тип столбца записи: время. Есть ли способ их разделить, например:
1.9.3-p286 :002 > Date.parse("JAN 01 2000")
=> Sat, 01 Jan 2000
Ответы
Ответ 1
Объект Time
в Ruby использует " Unix Time "для хранения временных точек в секундах с 1 января 1970 года 00:00 UTC. Различные методы, такие как strftime
, просто изменяют формат вывода, но не как объект хранится внутри.
Итак, у вас есть решение сделать: сохранить импортированные данные как объект Time и помнить о том, что он на самом деле содержит, или импортировать ваши данные в виде строки, но отказаться от всех прекрасных полезных функций Time
.
Ответ 2
Там этот драгоценный камень tod
, TimeOfDay
, который обеспечивает функциональные возможности, как это.
https://github.com/JackC/tod