Ruby Time.new дает смещение часового пояса на 14 минут - PullRequest
2 голосов
/ 06 мая 2011

Когда я создаю объект времени в Ruby 1.9.2 с датой ранее 1 сентября 1919 года, часовой пояс устанавливается на +0014, а не на системную зону (+0100) или UTC.Теперь, когда я обнаружил, что проблема заключается в раннем свидании, и поскольку все, что я хочу, это время без даты, я просто буду использовать недавнее свидание.Но кто-нибудь знает, почему это происходит?

ruby-1.9.2-p0 :034 > Time.new(1919,9,1,0,0,0)
=> 1919-09-01 00:46:24 +0100 
ruby-1.9.2-p0 :035 > Time.new(1919,8,31,23,59,59)
=> 1919-08-31 23:59:59 +0014 
ruby-1.9.2-p0 :036 > Time.new(1919,8,31,1,0,0)
=> 1919-08-31 01:00:00 +0014 

1 Ответ

0 голосов
/ 06 мая 2011

Повторяю то, что комментируют другие: здесь нет воспроизводимой проблемы с информацией, которую вы предоставили.В Windows 7, 64-разрядная версия:

irb(main):001:0> Time.new(1919,8,31,23,59,59)
#=> 1919-08-31 23:59:59 -0600

irb(main):002:0> RUBY_DESCRIPTION
#=> "ruby 1.9.2p180 (2011-02-18) [i386-mingw32]"

В Ubuntu 10.04, 32-разрядная версия:

ruby-1.9.2-p136 :001 > Time.new(1919,8,31,23,59,59)
#=> 1919-08-31 23:59:59 -0600

ruby-1.9.2-p136 :002 > RUBY_DESCRIPTION
#=> "ruby 1.9.2p136 (2010-12-25) [i686-linux]"

... и точный уровень исправления:

ruby-1.9.2-p0 :001 > Time.new(1919,8,31,23,59,59)
#=> 1919-08-31 23:59:59 -0600

ruby-1.9.2-p0 :002 > RUBY_DESCRIPTION
#=> "ruby 1.9.2p0 (2010-08-18) [i686-linux]"

Пожалуйста, предоставьте свою версию ОС и битовый уровень для дополнительной помощи.

...