2012-11-06 22 views
12

我想從平面文件中導入一些數據,並得到一些奇怪的結果。當導入未附加日期的時間時,爲什麼我還會在此時插入日期?你可以在沒有日期的軌道上有一段時間嗎?

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 
+0

您可以使用strftime,但輸出是一個String對象: 'puts Time.now.strftime(「%I:%M:%S%z」)#=>「09:33:00 -0400」' OR 'puts time.now.strftime(「%I:%M:%S%Z%z」)#=>「09:33:00 EDT -0400」' – MrYoshiji

+1

我也遇到過這個問題,並且我剛剛編寫了代碼來將您獲取的時間字符串轉換爲秒數的整數值。進行字符串操作非常簡單,如果您知道它始終採用HH:MM的形式,則更是如此。 – MrDanA

回答

8

Time對象在Ruby中使用「Unix Time」存儲時間點爲秒自1970年00 UTC 1月1日。諸如strftime之類的各種方法僅改變輸出的格式,而不改變對象在內部的存儲方式。

因此,您有一個決定:將導入的數據保存爲Time對象,並注意它實際包含的內容,或者將數據作爲字符串導入,但放棄Time的所有可愛有用功能。

相關問題