Поделиться через


Функции Now, Today, IsToday, UTCNow, UTCToday, IsUTCToday

Применимо к: Приложениям Canvas Потокам рабочего стола Dataverse Столбцам формул Приложениям на основе моделей Power Pages Power Platform CLI

Возвращают текущие дату и время, а также проверяют, относится ли значение даты и времени к сегодняшнему дню.

Заметка

Команды PAC CLI pac power-fx не поддерживают функции UTCNow, UTCToday и IsUTCToday .

Description

Функция Now возвращает текущее значение даты и времени в формате даты и времени.

Функция Today возвращает текущее значение даты в формате даты и времени. В качестве времени в этом значении указывается полночь. Сегодня имеет одинаковое значение в течение всего дня, с полуночи сегодняшнего дня до полуночи завтрашнего дня.

Функция IsToday проверяет, попадает ли заданное значение даты и времени в промежуток между полночью сегодняшнего и завтрашнего дня. Она возвращает логическое значение (true или false).

Функции Now, Today и IsToday работают с местным временем текущего пользователя.

Функции UTCNow, UTCToday и IsUTCToday такие же, как и их аналоги, не работающие в UTC, но работают со значениями, независимыми от часового пояса, и используют всемирное координированное время (UTC).

Заметка

  • UTCNow, UTCToday и IsUTCToday доступны только в Microsoft Dataverse for Teams столбцах формул и только для полей и значений, не зависящих от времени.
  • Now, Today и IsToday недоступны в Dataverse for Teams столбцах формул, поскольку оценки выполняются без учета местного часового пояса текущего пользователя.
    Дополнительная информация: Работа со столбцами таблицы формул в Dataverse for Teams

Дополнительные сведения см. в Дата, время и дата/время в документации по типам данных и работа с датами и временем.

Переменные функции

Now, Today, UTCNow и UTCTodday являются изменчивыми функциями. Эти функции возвращают разные значения для каждой оценки.

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

Например, элемент управления Label со значением Label1.Text = Now() не изменится в активном приложении. Новое значение возвращается только после закрытия и повторного открытия приложения.

Если функция является частью формулы в которой изменилось что-то еще, она будет вычислена повторно. Например, если мы изменим пример и включим в него элемент управления Slider со значением Label1.Text = DateAdd( Now(), Slider1.Value, Minutes ), то при каждом изменении значения элемента управления Slider извлекается значение текущего времени и повторно вычисляется свойство Text элемента управления Label.

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

Синтаксис

Использование местного времени пользователя

Сейчас()

Сегодня()

IsToday( ДатаВремя )

  • Дата и время - Обязательно. Значение даты и времени, которое нужно проверить.

Время в формате UTC

UTCNow()

UTCToday()

IsUTCTodday( TimeZoneIndependentTime )

  • TimeZoneIndependentDateTime - Обязательно. Независимое от часового пояса значение даты/времени для проверки.

Примеры

Для примеров в этом разделе текущее время — 8:58 PM 11 июля 2021, тихоокеанский часовой пояс (UTC-8) и язык en-us.

Формула Описание Результат
Текст( Сейчас(), "мм/дд/гггг чч:мм:сс" ) Получает текущее значение даты и времени в часовом поясе пользователя и отображает его в виде строки. "07/11/2021 20:58:00"
Текст(Сегодня(), "мм/дд/гггг чч:мм:сс") Получает только текущую дату, оставляя части времени как полночь, и отображает его в виде строки. "07/12/2021 00:00:00"
IsToday( Сейчас() ) Проверяет, попадает ли текущее значение даты и времени в промежуток между полночью сегодняшнего и полночью завтрашнего дня. истинный
IsToday(Сегодня()) Проверяет, попадает ли текущая дата в промежуток между полночью сегодняшнего и завтрашнего дня. истинный
Текст( DateAdd( Now(), 12 ), "мм/дд/гггг чч:мм:сс" ) Получает текущее значение даты и времени, прибавляет к результату 12 дней и выводит его в виде строки. "07/23/2021 20:58:00"
Текст( DateAdd( Today(), 12 ), "мм/дд/гггг чч:мм:сс" ) Получает текущую дату, прибавляет к результату 12 дней и выводит его в виде строки. "07/23/2021 00:00:00"
IsToday( ДатаДобавить( Сейчас(), 12 ) ) Проверяет, попадает ли текущее значение даты и времени плюс 12 дней в промежуток между полночью сегодняшнего и полночью завтрашнего дня. ЛОЖЬ
IsToday( ДатаДобавить( Сегодня(), 12 ) ) Проверяет, попадает ли текущее значение даты плюс 12 дней в промежуток между полночью сегодняшнего и полночью завтрашнего дня. ЛОЖЬ
Час(UTCNow()) Извлекает текущую дату и время в формате UTC и извлекает только час, который опережает местное время на 8 часов. 4
День(UTCTоday()) Извлекает только текущую дату в формате UTC и извлекает день, который опережает местное время на 1 день. 12
IsUTCTodday(UTCNow()) Проверяет, попадает ли текущее значение даты и времени в промежуток между полночью сегодняшнего и полночью завтрашнего дня, всё в UTC. истинный
IsUTCTodday(UTCTodday()) Проверяет, попадает ли текущее значение даты в промежуток между полночью сегодняшнего и полночью завтрашнего дня, всё в UTC. истинный

Отображение часов, обновляющихся в режиме реального времени

  1. Добавьте элемент управления Timer, задайте его свойству Duration значение 1000, а свойству Repeat — значение true.

    Таймер будет работать в течение одной секунды, автоматически перезапустится и будет работать по этой схеме.

  2. Задайте для свойства OnTimerEnd элемента управления следующую формулу в качестве значения.

    Установить(ТекущееВремя, Сейчас())

    При каждом повторном запуске таймера (через каждую секунду) эта формула задает глобальной переменной CurrentTime текущее значение функции Now.

    Экран, отображающий элемент управления Timer с формулой OnTimerEnd = Set(CurrentTime, Now()).

  3. Добавьте элемент управления Label и задайте в качестве значения свойства Text следующую формулу:

    Текст(ТекущееВремя, ДолгоеВремя24)

    С помощью функции Text отформатируйте дату и время, как вам нужно, или задайте этому свойству значение CurrentTime для отображения часов и минут, но не секунд.

    Экран с отображением элемента управления Label со свойством

  4. Просмотрите приложение, нажав клавишу F5, а затем запустите таймер, щелкнув или коснувшись его.

    Элемент управления Labelпостоянно показывает текущее время вплоть до секунды.

    Четыре экрана, отображающие четыре значения времени (13:50:22, 13:50:45, 13:51:03 и 13:51:25).

  5. Задайте свойству AutoStart таймера значение true, а свойству Visible — значение false.

    Таймер становится невидимым и запускается автоматически.

  6. Задайте свойство OnStart экрана таким образом, чтобы переменная CurrentTime имела допустимое значение, как показано в этом примере:

    Установить(ТекущееВремя, Сейчас())

    Метка отображается сразу после запуска приложения (до того, как таймер проработает целую секунду).