Пожалуйста, извините, если это немного нубский вопрос:
У меня есть приложение, в котором пользователи могут устанавливать свои часовые пояса в своем профиле.
Когда кто-то добавляет состав (специальную терминологию приложения), я делаю следующее:
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"
}
Как видите, поле даты неверно - оно по-прежнему поддерживает часовой пояс пользователя, оно должно быть по Гринвичу, а не по часовому поясу.
Если я вывожу time.gmtime, я получаю правильное время (которое следует сохранить):
2011-10-26 11:30:00 UTC (correct)
Есть идеи, как сохранить дату по Гринвичу, чтобы она действительно сохраняла дату по Гринвичу?