给出我想用"starts_at"=>"2016-02-04T14:30:00.000+01:00"
此条目存储在postgres中,starts_at
应该保留时区 - 这一点很重要,保持原样并且这次显示为完全 - 14:30。
商业意义:用户可以节省他在伦敦的时间。来自澳大利亚的管理员检查条目,他应该在用户的时区
同时我需要服务器才能正确理解它是什么时间,所以我可以在1小时内选择条目"
Rails给出:
[28] pry(main)> entry.starts_at
=> 2016-02-04 13:30:00 UTC
[17] pry(main)> entry.attributes_before_type_cast["starts_at"]
=> "2016-02-04 13:30:00+00"
我想那个postgress扔掉时区,虽然我尝试输入:
t.change :starts_at, 'timestamp with time zone'
如何以适当的时区存储/检索字段,该字段存储在postgress中。 它可以是不同条目的任何时区,代码不知道哪个条目具有哪个时区,因此我们不能使用in_time_zone (除非我将时区存储在单独的字段中,看起来太虚伪了)
是否有类似do_not_touch_timezones_for :starts_at
或starts_at.original_timezone
或全局配置的内容。
尝试self.skip_time_zone_conversion_for_attributes = [:starts_at, :ends_at]
- 没有任何影响
答案 0 :(得分:1)
Time#parse
是否有任何问题?它似乎返回你想要的时间:
Time.parse("2016-02-04T14:30:00.000+01:00")
#=> 2016-02-04 14:30:00 +0100