在Ruby/Rails中,如何將UTC日期時間轉換爲另一個時區?Rails:將UTC DateTime轉換爲另一個時區
回答
time.in_time_zone(time_zone)
例子:
zone = ActiveSupport::TimeZone.new("Central Time (US & Canada)")
Time.now.in_time_zone(zone)
或只是
Time.now.in_time_zone("Central Time (US & Canada)")
您可以通過執行找到的ActiveSupport時區的名稱:
ActiveSupport::TimeZone.all.map(&:name)
# or for just US
ActiveSupport::TimeZone.us_zones.map(&:name)
嘗試的ActiveSupport的TimeWithZone對象manipul與TimeZone合作。 ActiveSupport還提供了用於將UTC時間轉換爲指定時區的時區的in_time_zone方法。 mckeed的答案顯示了代碼。
將TimeWithZone導入我的課堂的語法是什麼?或者我默認使用Rails獲得它? – 2010-04-23 03:04:28
我相信你默認會得到它。 mckeed有你需要的代碼,但你不會在irb中看到它。你需要在Rails中運行它。 – Fred 2010-04-23 04:32:56
你是對的 - 謝謝,弗雷德 - 它默認有Rails。我抓着吸管,試圖讓它在irb中工作。 – 2010-04-23 19:21:43
我使用simple_form Rails中4,我剛添加的輸入字段作爲
<%= f.input :time_zone, :as => :time_zone %>
與遷移
class AddTimeZoneColumnToTextmessage < ActiveRecord::Migration
def change
add_column :textmessages, :time_zone, :string
end
end
以防萬一,如果你正在處理的ActiveRecord對象的Rails 。
這可能是使用Time.use_zone
用於覆蓋缺省時區在config.time_zone
解釋根據請求時區一個好主意,如果Time.zone
這是你想要的時區,那麼你可以使用@date.to_time.to_datetime
> @date
=> Tue, 02 Sep 2014 23:59:59 +0000
> @date.class
=> DateTime
> @date.to_time
=> 2014-09-02 12:59:59 -1100
> @date.to_time.to_datetime
=> Tue, 02 Sep 2014 12:59:59 -1100
無法在Rails上工作5 ' Time.zone#=> Europe/Paris my_date#=> 2017年3月29日星期三19:00:20 +0200 my_date.to_time#=>「2017-03-29T17 :00:20。000 + 00:00「 my_date.to_time.to_datetime#=> 2017年3月29日星期三17:00:20 +0000 ' – 2017-03-21 10:36:45
- 1. 將DateTime + TimeZone轉換爲UTC
- 2. 將UTC轉換爲另一個時區,在php
- 3. 無法將UTC的日期轉換爲另一個時區
- 4. 將UTC時間轉換爲DateTime對象
- 5. 將unix時間轉換爲UTC datetime
- 6. UTC爲datetime轉換
- 7. 將DateTime從特定時區轉換爲UTC - 錯過了小時?
- 8. sql server將datetime轉換爲另一個時區?
- 9. 將時間戳轉換爲UTC時區
- 10. 將時間和時區轉換爲UTC
- 11. Python:我如何將UTC時間戳轉換爲python utc datetime?
- 12. 將UTC轉換爲特定時區
- 13. 將UTC轉換爲東部時區
- 14. 將UTC轉換爲不同的時區
- 15. 從一個UTC時區轉換DateTime.Now另一個
- 16. C#將UTC int轉換爲DateTime對象
- 17. 將字符串轉換(與UTC)爲DateTime
- 18. 將DateTime轉換爲UTC並返回
- 19. 當種類爲Utc時,從datetime UTC轉換爲datetimeoffset時出錯
- 20. UTC datetime轉換爲當地時間
- 21. Ruby on Rails 3將時間轉換爲特定時區的DateTime
- 22. 如何攔截DateTime對象的時區並將其轉換爲另一個時區(Ruby/Rails)
- 23. datetime UTC轉換mongodb
- 24. 如何將UTC從UTC時間轉換爲CEST時區
- 25. php將datetime轉換爲unixtime和時區
- 26. 將MySQL時間戳列從一個時區轉換爲另一個時區
- 27. 將時區轉換爲另一個時區
- 28. 如何將UDate從一個時區轉換爲另一個時區使用ICU
- 29. 如何在javascript中將時區與時區轉換爲UTC
- 30. JavaScript:將5.5時區的上午8點轉換爲UTC時區?
在IRB,當我嘗試Time.now.in_time_zone( 'CST'),我得到的錯誤 「未定義的方法 'in_time_zone'」。爲了讓這個工作起作用,我需要哪些rails類? – 2010-04-23 02:59:19
您正在使用哪個版本的Rails?它是否工作,如果你做Time.zone.now.in_time_zone(...)? – mckeed 2010-04-23 14:49:49
非常感謝代碼示例。這清除了它(與弗雷德的評論一起)。我做了很多錯事,我甚至無法解釋:-) – 2010-04-23 19:20:28