2016-01-15 65 views
0

我有一個Rails應用程序,它可以保存來自不同提供者的日期/時間信息,用於調度信息。然後,我需要提取這些數據以查看一系列時間表。 Rails將其轉換爲UTC時間。無論如何保存沒有翻譯的日期時間?忽略TimeStamps Postgres和Rails

例如,他們會給我他們當地的日期/時間(我無法知道他們在哪裏),我需要以與輸入相同的方式回饋給用戶。

回答

0

有一個設置允許日期保存在本地時區而不是UTC。在application.rb中你想設置:

config.active_record.default_timezone = :local 

此外,如果你是不是想救所有次以這種方式,我會鼓勵您瀏覽this timestamp documentation。具體而言,在一個類中,你可以添加以下行:

self.skip_time_zone_conversion_for_attributes = [:written_on] 
0

您可以創建一個額外的列和用戶輸入存儲爲一個字符串。這樣,您可以選擇在保存時將其轉換爲DateTime對象,並保存用戶提交的原始字符串。應該給你兩全其美的。

在你的模型,例如:

before_save :convert_time 
def convert_time 
    # save the timestamp in the format you need 
    self.time = DateTime.strptime(user_input_time, "%Y-%m-%dT%H:%M:%S%z") 
end 

這樣,你可以在視圖中的用戶輸入

<%= your_object.user_input_time %>