MongoDB хранит неверные DOB - PullRequest
       3

MongoDB хранит неверные DOB

0 голосов
/ 10 октября 2019

Я использую Java Date для хранения DOB of Person и сохранения деталей в MongoDB. Однако в MongoDB Дата на один день меньше, чем фактическая DOB. Например, в Java DOB: Понедельник 20 мая 00:00:00 IST 2019 В MongoDB хранится значение: 2019-05-19T18: 30: 00.000 + 0000

Обратите внимание, что DOB в MongoDB на один день меньше,В чем может быть причина несоответствия даты?

И приложение MongoDB, и приложение Java (приложение SpringBoot) работают на одном компьютере.

Ответы [ 2 ]

2 голосов
/ 10 октября 2019

Опираясь на вершину Ответ Каямана , поскольку вы храните дату рождения, имеет смысл использовать локальное значение даты (без времени и без часового пояса). Эквивалентным классом для этого в Java является LocalDate:

LocalDate - неизменный объект даты-времени, представляющий дату, часто рассматриваемый как год-месяц-день,Другие поля даты, такие как день года, день недели и неделя года, также могут быть доступны. Например, значение «2 октября 2007» может быть сохранено в LocalDate.

Этот класс не хранит или не представляет время или часовой пояс. Вместо этого это описание даты, используемой для дней рождения. Он не может представлять момент на временной шкале без дополнительной информации, такой как смещение или часовой пояс.

Если вам нужны и дата, и время, то имеет смысл хранить эту информацию в UTC. В Java это может быть представлено с Instant или OffsetDateTime.

2 голосов
/ 10 октября 2019

Стандартное время Индии (IST) на 5:30 часов опережает Всемирное координированное время (UTC).

Поэтому 2019-05-19T18: 30: 00.000 + 0000 UTC + 5.30 == Пн 20 мая 00: 00: 00 IST 2019

Таким образом, значение просто сохраняется в UTC в MongoDB.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...