Формат даты и времени для определения порядка записей - PullRequest
0 голосов
/ 24 апреля 2018

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

Я рассматриваю время unix эпохи и сохраняю это значение в каждой записи в базе данных для фильтрации итакже это значение будет отправляться с каждым запросом опроса.

Что вы думаете об этом решении?Это нормально, или я должен о чем-то беспокоиться?Спасибо.

РЕДАКТИРОВАТЬ:

Я забыл заметить, что эти данные будут добавлены клиентами в разных часовых поясах.Это еще одна причина, по которой я считаю использование unix time.

1 Ответ

0 голосов
/ 24 апреля 2018

Подойдет любой формат хранения метки времени, если пользователи смогут однозначно ее интерпретировать. Нет причин для того, чтобы формат меток времени в API был таким же, как в базе данных. Идея API состоит в том, чтобы отделить модель от базы данных.

Лично я бы выбрал один формат из Базовые и расширенные обозначения ISO 8601 . Пример: 2008-09-15T15: 53: 00 . Практически во всех языках программирования есть методы для обработки этого формата (приведенные к метке времени Unix или к внутренним классам даты / времени). Для Java вы бы использовали java.time.LocalDateTime#parse

У метки времени Unix есть некоторые проблемы (они могут быть или не быть проблемами для вас)

  • невозможно представить даты до 1 января 1970 года
  • невозможно представить даты после 19 января 2038 года
  • не читается человеком
  • не содержит часовой пояс (сама временная метка не имеет понятия часового пояса, но может быть полезно отправить клиентский часовой пояс вместе с временной меткой. Сервер всегда может нормализовать значение в UTC)
...