#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