Поведение и формат столбца "Дата и время"

В Microsoft Dataverse вы можете указать, как значения даты и времени отображаются для пользователей, а также как они корректируются с учетом часовых поясов.

Помимо стандартных свойств, доступных в большинстве столбцов, столбцы даты и времени имеют два дополнительных свойства:

  • Корректировка часового пояса: следует ли настраивать значения часовых поясов.
  • Формат: отображать ли временную часть значения.

Корректировка часового пояса

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

  • Часовой пояс пользователя: значения корректируются в соответствии с часовым поясом пользователя. Это поведение по умолчанию для формата Дата и время. Вы можете один раз изменить его на другое поведение.
  • Независимо от часового пояса: без преобразования часового пояса. Это поведение по умолчанию для формата Только дата.

Задайте часовой пояс пользователя в личных параметрах, а не системный часовой пояс в Windows, Android, iOS или macOS. Однако системный часовой пояс может влиять на клиентские скрипты, работающие с датами JavaScript.

Формат

Все столбцы даты и времени содержат компонент времени, если их поведение не установлено как Только дата. Формат: определяет, отображать ли временную часть значения.

  • Дата и время: отображаются дата и время в значении.
  • Только дата: отображается только та часть значения, которая представляет собой дату.

Замечание

Если ФорматТолько дата, пользователи все равно могут изменять временную часть. Это можно делать, например, с помощью вызовов веб-API или с помощью элемента управления, имеющего временную часть. Это поведение отличается от Режима только дата, где временная часть не хранится вообще.

Рекомендации по использованию

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

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

Часовой пояс, не зависящийтолько от даты , практически совпадает с настройкой столбца только даты. Используйте первый вариант, если вы не уверены, понадобится ли вам временная часть в будущем.

Это важно

Избегайте использования формата Только дата с поведением Часовой пояс пользователя. Пользователи в разных часовых поясах могут видеть другую дату, что не предусмотрено в большинстве сценариев. Когда пользователь устанавливает дату в приложении на основе модели, временная часть автоматически устанавливается на полночь его часового пояса. Это может привести к тому, что для других пользователей дата появится на день раньше или позже.

Примеры

Отображаемые значения

В Dataverse хранится значение 2023-10-15T07:30:00Z (или 2023-10-15 в случае поведения Только дата). Пользователи в часовом поясе UTC-8 видят следующие значения в приложении на основе модели или при использовании запроса веб-API для получения форматированного значения:

Поведение Формат Отображаемое значение
Часовой пояс пользователя Дата и время 14 октября 2023 г., 23:30
Часовой пояс пользователя Только дата 14 октября 2023 г.
Независимо от часового пояса Дата и время 15 октября 2023 г., 7:30
Независимо от часового пояса Только дата 15 октября 2023 г.
Только дата - 15 октября 2023 г.

Ввод значений в приложении

Пользователи в часовом поясе UTC-8 вводят October 14th, 2023, 11:30 pm в приложении на основе модели. Значение сохраняется в Dataverse следующим образом:

Поведение Формат Значение, сохраненное в Dataverse
Часовой пояс пользователя Дата и время 2023-10-15T07:30:00Z
Часовой пояс пользователя Только дата 2023-10-15T07:30:00Z
Независимо от часового пояса Дата и время 2023-10-14T23:30:00Z
Независимо от часового пояса Только дата 2023-10-14T23:30:00Z
Только дата - 14.10.2023

Если пользователь вводит только дату October 14th, 2023, предполагается, что временная часть равна 00:00.

Поведение Формат Значение, сохраненное в Dataverse
Часовой пояс пользователя Только дата 2023-10-14T08:00:00Z
Независимо от часового пояса Только дата 2023-10-14T00:00:00Z
Только дата - 14.10.2023

Ввод недопустимых значений в приложении

В разных клиентах используются разные способы обработки недопустимого ввода. Например, в часовом поясе Тихого океана летнее освещение началось 12 марта 2023 года в 2:00, переместив время вперед один час до 3:00 утра. Времени между 2:00 и 3:00 в этот день не существует. Когда пользователи пытаются ввести значение в этом диапазоне времени, приложение может выполнить одно из следующих действий:

  • Перейти к предыдущему или следующему допустимому времени.
  • Вернуться к последнему известному значению.
  • Показать сообщение об ошибке.
  • Не отображать время между 2:00 и 3:00 в средстве выбора времени, чтобы пользователи не могли его выбрать.

Аналогичным образом, разные клиенты по-разному обрабатывают повторяющиеся диапазоны времени. Например, в часовом поясе Тихого океана летнее освещение закончилось 5 ноября 2023 года в 2:00, переместив время назад один час до 1:00 утра. Время между 1:00 и 2:00 в этот день повторяется дважды. Такое время, как 1:30, может относиться к любому часовому поясу. Если вам нужно однозначно отображать или вводить время в этом диапазоне, лучше всего временно переключиться на часовой пояс, который не предусматривает перехода на летнее время.

Получение необработанных значений с помощью веб-API

В Dataverse хранится значение 2023-10-15T07:30:00Z (или 2023-10-15 в случае поведения Только дата). Пользователи во всех часовых поясах получают эти значения с запросом веб-API для значения:

Поведение Формат Необработанное значение
Часовой пояс пользователя Дата и время 2023-10-15T07:30:00Z
Часовой пояс пользователя Только дата 2023-10-15T07:30:00Z
Независимо от часового пояса Дата и время 2023-10-15T07:30:00Z
Независимо от часового пояса Только дата 2023-10-15T07:30:00Z
Только дата - 2023-10-15

Получение значений с помощью клиентского API

Пользователи в часовом поясе UTC-8 вводят October 14th, 2023, 11:30 pm в приложении на основе модели. Функции клиентского API, такие как formContext.getAttribute(<column name>).getValue(), возвращают значение с примененными корректировками с учетом часового пояса:

Поведение Формат Javascript dateValue.toUTCString()
Часовой пояс пользователя Дата и время 15.10.2023 07:30 (UTC)
Часовой пояс пользователя Только дата 15.10.2023 07:30 (UTC)

При поведении Независимо от часового пояса значение даты JavaScript находится в часовом поясе браузера:

Поведение Формат Javascript dateValue.toString()
Независимо от часового пояса Дата и время 14.10.2023 23:30 (часовой пояс браузера)
Независимо от часового пояса Только дата 14.10.2023 23:30 (часовой пояс браузера)

Значения даты в JavaScript всегда имеют временной компонент. Вот почему значения с поведением Только дата имеют временной компонент, равный 00:00:

Поведение Формат Javascript dateValue.toString()
Только дата - 15.10.2023 00:00 (часовой пояс браузера)

Замечание

На значения даты в JavaScript влияет часовой пояс браузера, который определяется параметрами операционной системы устройства.

Для локального поведения пользователя интерпретирует результат клиентского API в формате UTC. Используйте Date.getUTCDate() или Date.getUTCHours() для работы с ним. Чтобы получить то, что видит пользователь, примените getTimeZoneOffsetMinutes. Не используйте Date.getDate() или Date.getHours() потому, что эти функции показывают значение в часовом поясе браузера.

Для поведения независимого от часового пояса и только даты интерпретируйте результат клиентского API как значение в часовом поясе браузера. Используйте Date.getDate() или Date.getHours() для работы с ним. Не используйте Date.getUTCDate() или Date.getUTCHours() потому, что вам не нужно настраивать их для каких-либо часовых поясов.

Изменение поведения "Часовой пояс пользователя"

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

Изменение поведение столбцов влияет на значения столбцов, добавляемые или изменяемые после изменения поведения столбцов. Существующие значения столбцов остаются в базе данных в формате UTC. Чтобы изменить поведение существующих значений столбцов с UTC на Только дата, вам может понадобиться помощь разработчика для преобразования поведения существующих значений даты и времени в базе данных.

Предупреждение

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

Изменение поведения при импорте решения

При импорте решения, содержащего столбец даты с Локальное время пользователя, можно изменить поведение на "Только дата" или "Независимый от часового пояса".

Замечание

Вы можете изменить поведение существующего управляемого столбца типа Только дата или Дата и время, только если являетесь издателем. Чтобы внести изменение в эти поля, необходимо обновить решение, в котором был добавлен столбец Только дата или Дата и время. Дополнительные сведения: произведение модернизации или обновление решения

Предотвращение изменения поведения

При распространении пользовательского столбца даты в управляемом решении можно запретить пользователям решения изменять поведение, задав для управляемого свойства CanChangeDateTimeBehavior значение False. Дополнительные сведения: Задание управляемых свойств для столбцов

Операторы запроса даты и времени, не поддерживаемые при поведении "Только дата"

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

  • Старше X минут
  • Старше X ч
  • Последние X ч
  • Следующие X ч

См. также

Устранение проблем с датой и временем в приложениях на основе модели
Создание и изменение столбцов
Определение вычисляемых столбцов для автоматизации ручных расчетов
Управляемые свойства столбца
Управляемые свойства
Блог: работа с часовыми поясами в Dataverse
Настройка поведения и формата столбца даты и времени с использованием кода