Mukesh Pr@sad Ответов: 1

Проблема времени в mongo db


Привет Эксперты,

Когда я вставка даты и времени в монго дБ, как его правильно вставлять
пример:- дата создания:2018-06-07 2:51:46.925

при извлечении в xamarin это происходит неправильно
пример: дата создания:2018-06-07 9:21:46.925

это означает, что он уменьшается на 5 часов 30 минут.

Что я уже пробовал:

Я попытался добавить 5 часов 30 минут к полученному времени , что дает правильное значение
но это не правильный путь, может ли кто-нибудь сказать мне, почему это происходит и каково решение.

спасибо

1 Ответов

Рейтинг:
10

Jochen Arndt

Это стандартное смещение времени Индии по отношению к UTC.

Datetime хранится внутри всегда в UTC с MongoDB. Чтобы избежать проблем, вы должны убедиться, что даты находятся в UTC при хранении или - при передаче в виде текста - имеют соответствующую информацию о часовом поясе (затем они будут преобразованы в UTC).

То же самое относится и к получению дат. Они будут находиться в UTC и могут быть дополнительно преобразованы в местное время для отображения. Как это сделать, зависит от используемого языка программирования.

В вашем случае вы не сделали этого во время хранения и/или извлечения. Проверьте свой код самостоятельно или добавьте соответствующие части к вашему вопросу, чтобы получить помощь.

Общие правила таковы:

  • Всегда храните данные в формате datetime базы данных (никогда в виде строки)
  • Всегда храните в UTC (обязательно с MongoDB)
  • Используйте двоичные объекты datetime, когда это возможно (избегайте строк и преобразований)
  • Если для отображения требуется местное время используйте функции языка программирования или параметры форматирования SQL
  • Если преобразование в местное время выполняется на удаленном сервере (например, веб-сервере), то информация о часовом поясе клиента должна храниться в базе данных и извлекаться для преобразования


Mukesh Pr@sad

Спасибо ... попробую это решение.