Зараз, Сьогодні, IsToday, UTCNow, UTCToday, IsUTCToday
Застосовується до: програм Canvas Стовпців Dataverse формул потоків на робочому столі Командного рядка програм Power Pages Power Platform на основі моделі
Повернення поточних дати та часу, а також перевірка відповідності значення дати й часу сьогоднішньому дню.
Нотатка
Команди PAC CLI pac power-fx не підтримують функції UTCNow, UTCToday та IsUTCToday .
Опис
Функція 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 і UTCToday є волатильними функціями. Ці функції повертають різне значення для кожного обчислення.
Якщо у формулі використовується потік даних, змінна функція повертатиме інше значення тільки в разі повторного обчислення формули, в якій вона вказана. Якщо у формулі немає інших змін, то вона матиме однакове значення протягом усього виконання програми.
Наприклад, елемент керування з формулою Label1.Text = Now() не зміниться в активній програмі. Нове значення відобразиться лише після закриття та повторного відкриття програми.
Якщо функція є частиною формули, в якій ще щось змінилось, її значення буде обчислено повторно. Наприклад, якщо змінити наш приклад для включення елемента керування «Повзунок» із формулою Label1.Text = DateAdd( Now(), Slider1.Value, Minutes ), поточний час отримуватиметься після кожної зміни значення елемента керування «Повзунок» та повторного обчислення його властивості «Text».
У разі використання у формулі поведінки змінні функції обчислюватимуться повторно після кожного обчислення формули поведінки. Цей приклад описано нижче.
Синтаксис
Використання місцевого часу користувача
Зараз()
Сьогодні()
IsToday( DateTime )
- DateTime - обов’язковий. Значення дати й часу для перевірки.
Використання всесвітнього координованого часу (UTC)
UTCNow()
UTCToday()
IsUTCToday( TimeZoneIndependentTime )
- TimeZoneIndependentDateTime - обов’язковий. Незалежне значення дати й часу часового поясу для тестування.
Приклади
Для прикладів у цьому розділі поточний час 8:58 PM 11 липня 2021 р., тихоокеанський часовий пояс (UTC-8), мова –en-us.
Формула | Опис | Результат |
---|---|---|
Text( Now(), "мм/дд/рррррр гг:хх:сс" ) | Отримує поточні дату та час у часовому поясі користувача й відображає його як рядок. | "07/11/2021 20:58:00" |
Text( Today(), "мм/дд/рррр гг:хх:сс" ) | Отримує лише поточну дату (указуючи часову частину як північ) і відображає її як рядок. | "07/12/2021 00:00:00" |
IsToday( Now() ) | Перевіряє, чи знаходяться поточні дата та час між північчю сьогоднішнього дня та північчю завтрашнього дня. | Справжній |
IsToday( Today() ) | Перевіряє, чи знаходиться поточна дата між північчю сьогоднішнього дня та північчю завтрашнього дня. | Справжній |
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 днів, між північчю сьогоднішнього дня та північчю завтрашнього дня. | Брехня |
IsToday( DateAdd( Today(), 12 ) ) | Перевіряє, чи знаходиться поточна дата, плюс 12 днів, між північчю сьогоднішнього дня та північчю завтрашнього дня. | Брехня |
Година( UTCNow() ) | Отримує поточну дату та час у UTC, і видобуває лише годину, що випереджає місцевий час на 8 годин. | 4 |
День( UTCToday() ) | Отримує поточну дату лише в UTC і витягує день, який на 1 день випереджає місцевий час. | 12 |
IsUTCToday( UTCNow() ) | Перевіряє, чи знаходяться поточні дата та час між північчю сьогоднішнього дня та північчю завтрашнього дня, усе в UTC. | Справжній |
IsUTCToday( UTCToday() ) | Перевіряє, чи знаходиться поточна дата між північчю сьогоднішнього дня та північчю завтрашнього дня, усе в UTC. | Справжній |
Відображення годинника, що оновлюється в режимі реального часу
Додайте елемент керування Таймер, установіть для його властивості Duration значення 1000, а для властивості Repeat – true.
Таймер пропрацює одну секунду, автоматично перезапуститься і повторюватиме цю поведінку знову і знову.
Настройте властивість OnTimerEnd цього елемента керування відповідно до нижчезазначеної формули.
set( CurrentTime, Now() )
Під час кожного перезапуску таймера (щосекунди) ця формула встановлюватиме для глобальної змінної CurrentTime поточне значення функції Now.
Додайте елемент керування Підпис і для його властивості Текст укажіть таку формулу:
Text( CurrentTime, LongTime24 )
За допомогою функції Text форматуйте дату та час, або встановіть для цієї властивості тільки значення CurrentTime, щоб відображалися години і хвилини, але не секунди.
Натисніть клавішу F5 для попереднього перегляду програми, а потім запустіть таймер, клацнувши або торкнувшись його.
Підпис постійно відображатиме поточний час із точністю до секунди.
Установіть для властивості AutoStart таймера значення true, а для його властивості Visible – false.
Тепер таймер невидимий і запускається автоматично.
Настройте властивість OnStart екрана так, щоб змінна CurrentTime мала припустиме значення, як у наведеному нижче прикладі.
Set(CurrentTime, Now())
Підпис відображатиметься відразу після запуску програми (перш ніж таймер пропрацює повну секунду).