我有一個應用程序使用許多不同的時區...它將它們設置在一個控制器中,它們根據用戶而變化。所有的時間都存儲在UTC沒有時間戳等處理rails + postgres和時區
我的理解是這是Rails處理時區的正常方式。這工作正常99%的時間,直到我需要直接與Postgres做一些事情,然後時區成爲一個問題。
例如這個查詢除了GMT完全錯誤的,例如在中部時區,根據不同的時間設定的,它得到了錯誤的一天:
Events.where("EXTRACT(dow FROM start_at)", Date.today.wday)
當我試圖找到所有的日期在某一天。
我想要做這樣的事情。我不需要在時區之間進行搜索(它們不會混雜在一起),但如果時區不是UTC,則需要指定時區以獲得正確的結果。
User.events.where("EXTRACT(dow FROM start_at AT TIME ZONE ?) = ?", 'UTC', Date.today.wday)
但我不知道如何使用Time.zone
給我的東西,將與時區Postgres的工作。
Time.zone.tzinfo有時作品... Postgres將與「歐洲/華沙」的工作,但Rails的回報「歐洲 - 華沙」
一般來說我並沒有多少運氣與時區,任何指針將不勝感激。