/ / Rails Time Zone: Налаштування Time.zone не змінюється Time.current - рубін на рейках, рубін, часовий пояс, активація, tzinfo

Rails Часовий пояс: Встановлення Time.zone не змінюється Time.current - ruby-on-rail, ruby, часовий пояс, activeesupport, tzinfo

У рейках 3.0.10 я використовую Time.zone щоб змінити, як користувач бачить час курсів, розміщених у США. Однак зміна часового поясу не поводиться так, як я очікував

Time.zone = TZInfo::Timezone.get("America/Los_Angeles")
Time.zone     # => (GMT-08:00) America/Los_Angeles
Time.current  # => 2011-10-30 14:00:00 -0700


Time.zone = TZInfo::Timezone.get("America/Chicago")
Time.zone     # => (GMT-06:00) America/Chicago
Time.current  # => 2011-10-30 14:00:00 -0700

Я б очікував, що час зміниться, а також зсув, який буде пристосований до зміни Time.zone, однак, не здається, що він веде себе таким чином.

Я зіткнувся з проблемою, коли користувачі, які говорять LA,Каліфорнія створює курси, які закінчуються о 21:00 в Каліфорнії, і користувачі в різних часових поясах бачать, що курс стає неактивним і зникає в різний час, а не в той самий час. Чи може хтось пролити трохи світла на те, на чому насправді працює Time.zone, і як я можу отримати курс, який закінчується о 21:00 (PST), щоб правильно зникнути об 11:00 (CST)?

Відповіді:

4 для відповіді № 1

Замініть

Time.current

З

Time.zone.now

Це дасть вам поточний час у часовому поясі, який ви встановили.


0 для відповіді № 2
t = Time.now
Time.zone = TZInfo::Timezone.get("America/Los_Angeles")
t.in_time_zone

Or

Time.now.in_time_zone("America/Los_Angeles")