在将我的 Rails 应用程序部署到 VPS 后,我遇到了一些“时间”问题。经过一番困惑后,我发现 Rails 在使用日期/时间转换时表现得很奇怪。
我的服务器设置为时区“阿姆斯特丹”,在 Rails 配置中我也将时区设置为“阿姆斯特丹”
例子:
我通过 json/api 中的正文内容收到此字符串
date = "13-03-2015 09:29"
当我像这样转换这个字符串时:
date.to_datetime
,结果是“Fri, 13 Mar 2015 09:29:00 +0000”
当我像这样转换字符串时:
date.to_time
,结果是“2015-03-13 09:29:00 +0100”
如您所见,添加时间校正“+0000”与“+0100”的方式有所不同
所以当我这样转换时:
date.to_time.to_datetime
,结果是“Fri, 13 Mar 2015 09:29:00 +0100”
这就是我需要的结果,因为我的 postgres 数据库否则给了我一个错误的日期(+1 小时)
我的问题是:
.to_date and
和 的行为差异的解释是什么.to_datetime
Postgres 如何处理日期。当保存像“Fri, 13 Mar 2015 09:29:00 +0000”这样的日期时间参数时,我在 json 响应中呈现这个日期是 1 小时后。
希望有人可以向我解释这一点。
马汀