2015-03-31 36 views
0

將特定時區中的時間轉換爲字符串時,我丟失了一些我需要的信息。在將Time.at(ts).in_time_zone(time_zone)轉換爲字符串時丟失信息

例子:

ts = Time.now.to_i 
time_zone = "America/Los_Angeles" 
time = Time.now.in_time_zone(time_zone) 
time_string = time.to_s 

輸出:

time 
#=> Tue, 31 Mar 2015 12:05:03 PDT -07:00 
time_string 
#=> "2015-03-31 12:05:03 -0700" 

我怎樣才能獲得時間字符串等於Tue, 31 Mar 2015 12:05:03 PDT -07:00

+0

結帳['時間#strftime'(http://ruby-doc.org/core-1.9.3/Time.html#method-i-strftime)在使用本無論如何,你可以格式化字符串。 – engineersmnky 2015-03-31 19:18:21

+0

您應該添加一個ActiceSupport或Rails標籤。這可能會提示更多答案。 – 2015-03-31 20:27:09

+0

沒有Rails或ActiveSupport標籤,隱含的假設是你想要一個純Ruby解決方案。但是,您的示例向那些瞭解Rails的人建議您開放使用ActiveSupport方法的解決方案。這就是爲什麼你需要一個ActiveSupport或Rails標籤。另外,只使用ActiveSupport或Rails標籤查看問題的讀者可能會忽略您的問題。 – 2015-03-31 20:45:27

回答

1

正如engineersmnky說,strftime的是你的朋友:

time_string = time_string.to_time.strftime("%a, %d %b %Y %H:%M:%S PDT %z") 

但我真的不知道有關該區域的%Z!

0

這工作:

Time.now.in_time_zone(time_zone).strftime("%a, %d %b %Y %H:%M:%S %Z") 
"Tue, 31 Mar 2015 12:59:25 PDT" 
相關問題