如果这是一个菜鸟问题,请原谅:
我有一个应用程序,用户可以在其个人资料中设置自己的时区。
当有人添加阵容(应用程序特定术语)时,我会执行以下操作:
time = ActiveSupport::TimeZone.new(user.timezone).parse(
"Wednesday, 26 October, 2011 13:30:00"
)
# This outputs: 2011-10-26 13:30:00 +0200 - valid according to the user selected TZ
然后我保存阵容:
Lineup.create({
:date => time.gmtime,
:uid => user._id,
:pid => product._id
})
这应该(理论上)将日期保存为 gmtime,但在查看记录时我得到以下信息:
{
"_id": ObjectId("4e9c6613e673454f93000002"),
"date": "Wed, 26 Oct 2011 13: 30: 00 +0200",
"uid": "4e9b81f6e673454c8a000001",
"pid": "4e9c6613e673454f93000001",
"created_at": "Mon, 17 Oct 2011 19: 29: 55 +0200"
}
正如您所看到的,日期字段是错误的 - 它仍然维护用户时区,它应该是 GMT,而不是特定于时区的。
如果我输出 time.gmtime,我会得到正确的时间(应该保存):
2011-10-26 11:30:00 UTC (correct)
有什么想法如何保存 GMT 日期,以便它真正保存 GMT 日期吗?