2012-11-06 12 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 '私はこの問題にも対処しました。(%I:%M:%S%Z%z)#=>「09:33:00 EDT -0400」「 – MrYoshiji

+1

そして、私はちょうどあなたが入っている時間文字列を秒数の整数値に変換するコードを書いています。文字列操作を行うのはかなり簡単ですが、それが常にHH:MMの形式であることがわかっている場合はさらにそうです。 – MrDanA

答えて

8

RubyでTimeオブジェクトは1970年1月1日0時UTCからの秒として時間的ポイントを保存するには、「Unix Time」を使用していますようにそれらを別々に維持する方法はあります。 strftimeなどのさまざまな方法では、出力の形式は変更されますが、オブジェクトが内部的にどのように格納されるかは変わりません。

インポートされたデータをTimeオブジェクトとして保持し、実際に何が含まれているかを気にするか、文字列としてデータをインポートしますが、Timeの素敵な有用な機能はすべて忘れてしまいます。

関連する問題