Почему Heroku регистрирует использование времени сервера, а не часового пояса направляющих?

ОБНОВЛЕНИЕ: хорошо, я не сформулировал хороший Q, которому ответят. Я все еще борюсь с heroku, находящимся на-07:00 UTC и мне в +02:00 UTC.

Q: Как я писал журнал в корректном Time.zone? Различие этих 9 часов, heroku (нас запад) - Норвегия, недовольно для работы с. Я получаю это в своем production.log (использование heroku logs):

Обработка ProductionController#create к xml (для 81.26.51.35 в 28.04.2010 23:00:12) [POST]

Как я заставляю это писать 2010-04-29 08:00:12 +02:00 GMT ?

Обратите внимание, что я работаю в heroku и не могу установить время сервера сам, поскольку можно было сделать в Вашей амазонке серверы EC2. Ниже мой предыдущий вопрос, я оставлю его быть, поскольку он содержит некоторую интересную информацию во время и зоны.


Почему делает Time.now приведите к местному времени сервера, когда я установлю другой часовой пояс в моем environment.rb

config.time_zone = 'Copenhagen'

Я поместил это в представление

<p> Time.zone <%= Time.zone %> </p>
<p> Time.now <%= Time.now %> </p>
<p> Time.now.utc <%= Time.now.utc %> </p>
<p> Time.zone.now <%= Time.zone.now %>  </p>
<p> Time.zone.today <%= Time.zone.today %> </p>

рендеринг этого результата на моем приложении в heroku

Time.zone (GMT+01:00) Копенгаген

Time.now понедельник 26 апреля 8:28:21 - 0700 2010

Time.now.utc понедельник 26 апреля 15:28:21 UTC 2010

Time.zone.now 26.04.2010 17:28:21 +0200

Time.zone.today 26.04.2010

Time.zone.now приводит к корректному результату. Сделайте я должен переключиться от Time.now кому: Time.zone.now, везде? Кажется громоздким. Я действительно не забочусь, каково местное время сервера, он дает мне загрузки проблемы из-за широкого применения Time.now. Я неправильно понимаю что-либо фундаментальное здесь?

34
задан Benjamin Oakes 22 August 2012 в 21:28
поделиться

2 ответа

После дальнейшего исследования моих собственных проблем с часовым поясом Heroku я нашел сообщение, в котором указывает, что вы действительно можете указать часовой пояс на уровне приложения, используя следующую команду:

heroku config:add TZ=Europe/Oslo

Я считаю, что это может быть ответом на все ваши проблемы. Предоставлено http://www.reality.hk/articles/2010/01/07/1319/ ( Редактировать: Неработающая ссылка по состоянию на 23.08.2012. Архивная копия .)

73
ответ дан 27 November 2019 в 16:29
поделиться

Без возможности изменить фактическое время сервера (что я не думаю, что вы сможете это сделать на Heroku), ваш единственный вариант - конвертировать время самостоятельно.

Если Time.zone.now слишком громоздко, вы можете установить глобальный часовой пояс с помощью драгоценного камня tzinfo :

$tz = TZInfo::Timezone.get("Europe/Oslo")
$tz.now # current time in Norway

Но это все еще глобальное изменение в вашем приложении, и существенно не отличается от того, что вы делаете.

2
ответ дан 27 November 2019 в 16:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: