22

我正在尝试从平面文件中导入一些数据并且得到一些奇怪的结果。导入未附加到日期的时间时,为什么还要在该时间中插入日期?

1.9.3-p286 :008 > v.arrival_time = Time.parse("10:10")
 => 2012-11-06 10:10:00 -0400

我猜只有一种方法可以单独保存日期,但没有办法单独保存时间,尽管活动记录列类型为 :time。有没有办法让它们分开,例如:

1.9.3-p286 :002 > Date.parse("JAN 01 2000")
 => Sat, 01 Jan 2000 
4

2 回答 2

12

Ruby 中的Time对象使用“ Unix Time ”将时间点存储为自 1970 年 1 月 1 日 00:00 UTC 以来的秒数。各种方法,例如strftime仅更改输出的格式,而不是对象在内部的存储方式。

因此,您需要做出决定:将导入的数据保留为 Time 对象,并注意它实际包含的内容,或者将数据导入为字符串,但放弃Time.

于 2012-11-06T19:05:45.793 回答
9

有这个 gem todTimeOfDay它提供了类似的功能。

https://github.com/JackC/tod

于 2019-03-27T19:52:15.577 回答