Boniface
@Boniface

Как в MongoDB сохранить дату в UTC (C# driver)?

Всем привет! Столкнулся с такой проблемой. Пытаюсь сохранить дату в UTC в mongoDB. Дата уже находится в utc (kind= utc) но при сохранении даты в базу она еще раз переводится в UTC. То есть в mongoDB она храниться уже как (-8) часов!!!

К примеру. Текущая локальная дата = 11.11.2014 11.30. В UTC она будет 11.11.2014 7.30. Так вот, когда я сохраняю 11.11.2014 7.30 (kind = UTC) в mongoDB дата еще раз переводится в UTC в итоге в mongoDB уже лежит 11.11.2014 3.30.

Проблему можно решить, переведя дату в локальное время или приплюсовав 4 часа, перед сохранением в mongodb. Но как-то это уж очень коряво. Подскажите, как можно настроить базу, чтобы дата, которая уже в utc, еще раз не переводилась в utc?
  • Вопрос задан
  • 3348 просмотров
Пригласить эксперта
Ответы на вопрос 2
Nesvet
@Nesvet
Разработчик
Сохраняйте в качестве даты строку от Date.toJSON():
var now = new Date(); // текущая дата
var dateString = now.toJSON(); // строка с датой в UTC; удобно хранить в mongo
var parsedDate = new Date(dateString); // преобразовали строку обратно в объект
Ответ написан
Комментировать
Boniface
@Boniface Автор вопроса
Не не вариант... Лучше уж перед сохранением перевести дату в локаль. Тогда в монге дата будет по гринвичу. Все ОК. Но я думал есть какая то хитрость в настройке драйвера, сериалайзера.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы