Функции 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. | истинный |
Отображение часов, обновляющихся в режиме реального времени
Добавьте элемент управления Timer, задайте его свойству Duration значение 1000, а свойству Repeat — значение true.
Таймер будет работать в течение одной секунды, автоматически перезапустится и будет работать по этой схеме.
Задайте для свойства OnTimerEnd элемента управления следующую формулу в качестве значения.
Установить(ТекущееВремя, Сейчас())
При каждом повторном запуске таймера (через каждую секунду) эта формула задает глобальной переменной CurrentTime текущее значение функции Now.
Добавьте элемент управления Label и задайте в качестве значения свойства Text следующую формулу:
Текст(ТекущееВремя, ДолгоеВремя24)
С помощью функции Text отформатируйте дату и время, как вам нужно, или задайте этому свойству значение CurrentTime для отображения часов и минут, но не секунд.
Просмотрите приложение, нажав клавишу F5, а затем запустите таймер, щелкнув или коснувшись его.
Элемент управления Labelпостоянно показывает текущее время вплоть до секунды.
Задайте свойству AutoStart таймера значение true, а свойству Visible — значение false.
Таймер становится невидимым и запускается автоматически.
Задайте свойство OnStart экрана таким образом, чтобы переменная CurrentTime имела допустимое значение, как показано в этом примере:
Установить(ТекущееВремя, Сейчас())
Метка отображается сразу после запуска приложения (до того, как таймер проработает целую секунду).