Измените время.теперь на сервере, чтобы вернуть другой часовой пояс

#ruby #timezone

#ruby #Часовой пояс

Вопрос:

У меня есть приложение, развернутое на сервере, где системное время отстает от UTC на 7 часов. Я на самом деле в Англии, поэтому я хочу, чтобы время отображалось по местному времени GMT (с учетом перехода на летнее время).

Драгоценный камень, который я использую, resque, использует Time.now для получения текущего времени. Что мне нужно настроить, чтобы Time.now возвращал правильное время?

Комментарии:

1. Я полагаю, у вас нет возможности просто установить правильный часовой пояс на вашем сервере, например, с dpkg-reconfigure tzdata на компьютере Debian?

2. Я использую dotcloud и не имею root-доступа. Использование переменной окружения хорошо, потому что это означает, что мне не нужно настраивать каждый сервер, который я использую по отдельности.

Ответ №1:

Самым простым способом было бы установить переменную ENV [«TZ»].

 > Time.now
=> 2011-05-21 13:13:23  0200 
> ENV["TZ"] = "Europe/London"
=> "Europe/London"
> Time.now
=> 2011-05-21 12:13:55  0100 
  

Ответ №2:

Посмотрите на некоторые драгоценные камни, искажающие время:http://ruby-toolbox.com/categories/time_warping.html