2038問題
/.j(http://slashdot.jp/article.pl?sid=09/02/09/012251)にてUnix Timeが「1234567890」になることが記事になっていた。
Rubyで確認してみる。
C:\>ruby -e 'p Time.at(1234567890)' Sat Feb 14 08:31:30 +0900 2009 C:\>ruby -e 'p Time.at(0x7fffffff)' Tue Jan 19 12:14:07 +0900 2038 C:\>ruby -e 'p Time.at(0x80000000)' -e:1:in `at': bignum too big to convert into `long' (RangeError) from -e:1
どーすんのかなーって調べてみた
C:\>irb irb(main):001:0> require "date2" => true irb(main):002:0> p DateTime.now.to_s "2009-02-12T09:25:36+09:00" => nil irb(main):003:0> p DateTime.new(2038, 01, 20).to_s "2038-01-20T00:00:00+00:00" => nil irb(main):004:0> Date.new(2038,01,20).to_s => "2038-01-20"
「date2.rb」を使えばいいらしい。
大した手間を掛けなくてよさそう。