-
-
Notifications
You must be signed in to change notification settings - Fork 942
Closed
Description
Consider this snippet
$ jruby --1.9 /home/alex/.rvm/rubies/jruby-1.7.4/bin/irb
jruby-1.7.4 :001 > p Time.now.zone; p Marshal.load(Marshal.dump(Time.now)).zone
"CDT"
"GMT+5"
=> "GMT+5" Looks like jRuby in 1.9 mode doesn't marshal/unmarshal time correctly. Weird thing happens with timezone. I am in CDT and should have GMT-5.
Is it known problem? Is there a way to workaround it?
JRuby 1.8 looks ok
$ jruby --1.8 /home/alex/.rvm/rubies/jruby-1.7.4/bin/irb
jruby-1.7.4 :001 > require 'time'; tr = Time.now; tr == Marshal.load(Marshal.dump(tr))
=> true
jruby-1.7.4 :002 > p Time.now.zone; p Marshal.load(Marshal.dump(Time.now)).zone
"CDT"
"CDT"
=> nil MRI 1.9.3 is broken too
ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-linux]
irb(main):001:0> p Time.now.zone; p Marshal.load(Marshal.dump(Time.now)).zone
"CDT"
nil
=> nilMRI 2.0 looks correct
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]
2.0.0p247 :001 > p Time.now.zone; p Marshal.load(Marshal.dump(Time.now)).zone
"CDT"
"CDT"
=> "CDT"
# original == to marshaled/unmarshalled
2.0.0p247 :002 > require 'time'; tr = Time.now; tr == Marshal.load(Marshal.dump(tr))
=> true Reactions are currently unavailable