Ruby: смещение по-разному интерпретируется Time и DateTime - PullRequest
1 голос
/ 07 апреля 2011

Кто-нибудь знает, почему Time.parse, похоже, неверно истолковывает смещение ??

# Correct:
ruby-1.9.2-p136 > DateTime.parse "2011-04-07T13:53:00-3"
 => Thu, 07 Apr 2011 13:53:00 -0300 

ruby-1.9.2-p136 > Time.parse "2011-04-07T13:53:00-3"
 => 2011-04-07 13:53:00 +0300 

Формат, похоже, не имеет значения:

ruby-1.9.2-p136 :027 > Time.parse "2011-04-07T13:53:00-0300"
 => 2011-04-07 19:53:00 +0300 
ruby-1.9.2-p136 :028 > Time.parse "2011-04-07T13:53:00-03"
 => 2011-04-07 19:53:00 +0300 
ruby-1.9.2-p136 :029 > Time.parse "2011-04-07T13:53:00-03:00"
 => 2011-04-07 19:53:00 +0300 

1 Ответ

2 голосов
/ 07 апреля 2011

Я думаю, Time.parse преобразует его в ваш часовой пояс.Поэтому, когда вы находитесь в +3 и вы даете ему время 13,53: 00-3, это будет 19,53: 00 + 3 местного времени для вас.

Также, если вы посмотрите на Ruby Doc , вы увидите, что метод синтаксического анализа Time # распознает только сокращения часовых поясов, описанных в RFC 822 , и системный часовой пояс.

Таким образом, вы должны использовать «-0300» вместо «-3».

...