最佳答案
我正在处理 Rails 和 Postgres 的日期和时间,遇到了这个问题:
数据库是 UTC 格式的。
用户在 Rails 应用程序中设置选择的时区,但只有在获取用户本地时间以进行比较时才能使用。
用户存储一个时间,比如2012年3月17日下午7点。我不希望存储时区转换或时区。我只是想节省时间和日期。这样,如果用户改变了他们的时区,它仍然会显示2012年3月17日,下午7时。
我只使用用户指定的时区来获取用户本地时区中当前时间之前或之后的记录。
我目前使用“没有时区的时间戳”,但是当我检索记录时,ails (?)将它们转换成应用程序中的时区,我不想这样。
Appointment.first.time
=> Fri, 02 Mar 2012 19:00:00 UTC +00:00
因为数据库中的记录看起来像 UTC,所以我的方法是利用当前时间,删除带有‘ Date.strptime (str,“% m/% d/% Y”)’的时区,然后使用它进行查询:
.where("time >= ?", date_start)
似乎有更简单的方法可以忽略周围的时区,有什么办法吗?