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