2016-10-25 8 views
0

Я использую msgraph-sdk-javascript версию 0.1.2 для примера приложения - Читаю список контактов через MS Graph API упорядоченные по дате изменения, используя этот URL:DateTime точность вопрос, когда фильтр объектов

https://graph.microsoft.com/v1.0/me/contacts?$orderby=lastModifiedDateTime asc&$top=10&$filter=lastModifiedDateTime gt 2016-10-24T14:21:03Z

Он работает хорошо, однако есть одна проблема - точность свойства lastModifiedDateTime на выходе не совпадает с тем, что используется для запроса.

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

Например, если у меня есть элемент с lastModifiedDateTime значение, которое возвращается как 2016-10-24T14:21:03Z однако, если я запрашиваю все элементы с lastModifiedDateTime>2016-10-24T14:21:03Z я все еще вижу один и тот же элемент, как и прежде, что я не вижу, если я выбираю lastModifiedDateTime>2016-10-24T14:21:03.999Z.

Знаете ли вы, как я могу получить миллисекундную точность lastModifiedDateTime как выход?

ответ

0

Как вы упомянули это поведение происходит из-за потери точности, выражение фильтра:

lastModifiedDateTime gt 2016-10-24T14:21:03Z 

соответствует следующему один (с миллисекунды части в комплекте):

lastModifiedDateTime gt 2016-10-24T14:21:03.000Z 

О OData Формат DateTime

Contact.LastModifiedDateTime внутренне хранится с большей точностью, чем секунда, s эи DateTimeOffset structure для более подробной информации, которая в свою очередь содержит DateTimeOffset.Millisecond Property

Сказав, что вы могли бы рассмотреть следующие варианты:

  • включают миллисекунды часть в $filter опции запроса, как это было демонстрироваться до
  • изменить выражение фильтра : $filter=lastModifiedDateTime ge 2016-10-24T14:21:04Z Это аналогичный запрос для включения всех контактов с после 2016-10-24T14:21:03Z
+0

Спасибо Вадиму, однако мой вопрос: увижу миллисекунды в ответе API? Поскольку в настоящее время я не вижу, чтобы я мог включать миллисекунды в запрос, но не знаю точных миллисекунд при проверке значений, возвращаемых API. –