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

Применимо к: приложениям на основе холста классическим потокам столбцам формул Dataverse приложениям на основе модели интерфейсу командной строки Power Platform

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

Заметка

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

Description

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

Функция Today возвращает текущее значение даты в формате даты и времени. В качестве времени в этом значении указывается полночь. Функция 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 и UTCToday — это переменные функции. Эти функции возвращают разные значения для каждой оценки.

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

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

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

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

Синтаксис

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

Now()

Today()

IsToday( дата и время )

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

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

UTCNow()

UTCToday()

IsUTCToday( TimeZoneIndependentTime )

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

Примеры

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

Формула Описание Результат
Text( Now(), "mm/dd/yyyy hh:mm:ss" ) Получает текущее значение даты и времени в часовом поясе пользователя и отображает его в виде строки. "07/11/2021 20:58:00"
Text( Today(), "mm/dd/yyyy hh:mm:ss" ) Получает только текущую дату, оставляя части времени как полночь, и отображает его в виде строки. "07/12/2021 00:00:00"
IsToday( Now() ) Проверяет, попадает ли текущее значение даты и времени в промежуток между полночью сегодняшнего и полночью завтрашнего дня. true
IsToday( Today() ) Проверяет, попадает ли текущая дата в промежуток между полночью сегодняшнего и завтрашнего дня. true
Text( DateAdd( Now(), 12 ), "mm/dd/yyyy hh:mm:ss" ) Получает текущее значение даты и времени, прибавляет к результату 12 дней и выводит его в виде строки. "07/23/2021 20:58:00"
Text( DateAdd( Today(), 12 ), "mm/dd/yyyy hh:mm:ss" ) Получает текущую дату, прибавляет к результату 12 дней и выводит его в виде строки. "07/23/2021 00:00:00"
IsToday( DateAdd( Now(), 12 ) ) Проверяет, попадает ли текущее значение даты и времени плюс 12 дней в промежуток между полночью сегодняшнего и полночью завтрашнего дня. false
IsToday( DateAdd( Today(), 12 ) ) Проверяет, попадает ли текущее значение даты плюс 12 дней в промежуток между полночью сегодняшнего и полночью завтрашнего дня. false
Hour( UTCNow() ) Извлекает текущую дату и время в формате UTC и извлекает только час, который опережает местное время на 8 часов. 4
Day( UTCToday() ) Извлекает только текущую дату в формате UTC и извлекает день, который опережает местное время на 1 день. 12
IsUTCToday( UTCNow() ) Проверяет, попадает ли текущее значение даты и времени в промежуток между полночью сегодняшнего и полночью завтрашнего дня, всё в UTC. true
IsUTCToday( UTCToday() ) Проверяет, попадает ли текущее значение даты в промежуток между полночью сегодняшнего и полночью завтрашнего дня, всё в UTC. true

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

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

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

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

    Set( CurrentTime, Now() )

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

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

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

    Text( CurrentTime, LongTime24 )

    С помощью функции 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 имела допустимое значение, как показано в этом примере:

    Set(CurrentTime, Now())

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