2011-11-11 48 views
1

我不知道如何使用Ruby 1.9.2獲取時間正是這種格式: 我使用導軌3.1可需要設置一些環境常數有它與to_s方法的框?輸出時間自定義格式(GMT而不是UTC)

2011-11-11十五點20分01秒GMT + 4

代替

Time.now.to_s # => "2011-11-11 15:20:01 +0400" 
+2

我並不確切地知道你做了什麼,因爲UTC和格林威治標準時間基本相同,你能澄清一下嗎? –

+0

我想'GMT'對於來自歐洲的許多人來說更自然。我使用'GMT'長大。 UTC感覺更科學/技術,儘管在將其用作偏移量的參考點時更爲正確。 – d11wtq

+0

我準備xml的外部服務,他們需要這種格式...我知道UTC和格林威治標準時間基本相同....我將我的數據導出到xml ... – user1030981

回答

2
class Time 
    def to_gmt 
    z = gmtoff/3600 
    strftime("%F %T GMT#{:+ if z>=0}#{z}") 
    end 
end 

puts Time.now.to_gmt 
#=> 2011-11-11 06:43:59 GMT-7 
+0

不錯!我應該在哪裏把這個文件(time.rb)在rails下應用這個monkey_patch? – user1030981

+0

我把這個文件放到初始化程序中,現在每個東西都按預期工作。謝謝 – user1030981

+0

這個答案是錯的:邊緣情況:「2011-11-11 15:20:01 +1000」=>「2011-11-11 15:20:01 GMT + 1」 –

1
Time.now.strftime("%D %T GMT%z")\ 
    .gsub(/GMT([-\+]\d\d\d\d)/){"GMT#{sprintf("%+d",$1.to_i/100)}"} 
+0

這在這個日期和時區格式不完全符合OP要求的內容。 – Phrogz

+0

你的代碼產生「2011-11-11 17:45:31 GMT + 0400」,但我需要「2011-11-11 17:45:31 GMT + 4」 – user1030981

+0

修正了我的答案,適當地工作。 –