たのしいRuby 第17章 時間関連クラス
Ruby漬けのGWも残り僅かで〜す。「この本の半分くらい終わればいいかなぁ」と、思っていたのですが、学習効率の高いirbのおかげで、案外順調に進んでます。
第三部最後の章。時間関連クラスに入ります。ワンライナ的な所なのでirbでいきたいと思います。
謎。
ふふ。早速謎の構文。
p Time.mktime(2006,5,15,05,13,11) #=> Mon May 15 05:13:11 +0900 2006
よく見ると"05"となってます。確認します。
p 012345 #=> 5349
サンプルは8進数で書いてありますね・・・危険です。罠です。
では、"09"にするとどうなるか。
p Time.mktime(2006,5,15,09,13,11) #=> SyntaxError: compile error
SyntaxErrorです。案外やってしまいそうなので、注意が必要かと思います。
8進数ついでに、もう一個確認しておきましょう。
p "012345".to_i #=> 12345
文字からの変換は10進数になりますね。Linuxな世界では8進数を多用するので、罠に注意です。パーミッションの755も8進数です。
Time,DateTime,Date
Rubyでは3つの時間の表し方があるようです。
Time.now #=> Sat May 05 17:21:28 +0900 2007 DateTime.now #=> #<DateTime: 212045113299867697/86400000000,3/8,2299161> Date.today #=> #<Date: 4908451/2,0,2299161>
- Time.now + 1は1秒足す
- DateTime.now + 1は1日足す
- Date.today + 1は1日足す
内部実装が違うので注意が必要です。