It seems that cannot store instances of DateTime, but instead stores them  
as Time.

irb(main):001:0> require "yaml"
=> true
irb(main):003:0> YAML.load(DateTime.now.to_yaml).class
=> Time

This causes issues when you have a DateTime that is out of range of Time

irb(main):005:0> date_time = DateTime.new(2041,1,1)
=> #<DateTime: 4933041/2,0,2299161>
irb(main):006:0> YAML.load(date_time.to_yaml)
ArgumentError: time out of range
         from /usr/local/lib/ruby/1.8/yaml.rb:133:in `utc'
         from /usr/local/lib/ruby/1.8/yaml.rb:133:in `node_import'
         from /usr/local/lib/ruby/1.8/yaml.rb:133:in `load'
         from /usr/local/lib/ruby/1.8/yaml.rb:133:in `load'
         from (irb):6

Does anyone have a fix or workaround for this?

Thanks,

Paul McMahon