2011-05-21 44 views
2

我有一個應用程序部署在系統時間晚於UTC 7小時的服務器上。我實際上在英格蘭,所以我希望在當地時間格林尼治標準時間(夏時制調整)顯示時間。更改Time.now在服務器上返回不同的時區

我正在使用的寶石resque使用Time.now檢索當前時間。我需要配置什麼才能讓Time.now返回正確的時間?

+0

我想你沒有機會,只是設置正確的時區的服務器上,例如在Debian機器上用'dpkg-reconfigure tzdata'? – 2011-05-21 14:08:14

+0

我正在使用dotcloud並且沒有root權限。使用環境變量是很好的,因爲這意味着我不必單獨配置每個服務器。 – opsb 2011-05-22 20:32:40

回答

8

最簡單的方法是設置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 
相關問題