我有一个rails应用程序,可以保存来自不同提供商的日期/时间信息以用于调度信息。然后,我需要提取该数据以查看一系列计划。 Rails正在将其转换为UTC时间。有没有保存没有翻译的日期时间?
例如,他们会给我他们当地的日期/时间(我无法知道他们在哪里),我需要以与输入相同的方式将其提供给用户。
答案 0 :(得分:0)
有一个设置允许将日期保存在本地时区而不是UTC中。在application.rb中,您需要设置:
config.active_record.default_timezone = :local
此外,如果您不想以这种方式保存所有次,我建议您浏览一下this timestamp documentation。具体来说,在一个类中,您可以添加以下行:
self.skip_time_zone_conversion_for_attributes = [:written_on]
答案 1 :(得分: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 %>