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


Функция Text

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

Преобразует любое значение и форматирует число или значение даты и времени в текстовую строку.

Описание

Функция Text форматирует число или значение даты и времени на основе аргументов следующих типов.

  • Стандартный формат даты и времени, который указывается с помощью перечисления DateTimeFormat. Для даты и времени этот подход является предпочтительным, так как он автоматически учитывает язык и регион пользователя.
  • Пользовательский формат, который содержит строку заполнителей, которые определяют, например, отображаются ли числа с десятичным разделителем, а в датах показывается ли полное название месяца, месяц в виде аббревиатуры или месяц в виде числа. Power Apps поддерживает подмножество заполнителей, которые есть в Microsoft Excel. В этой строке языковой заполнитель указывает язык, на котором следует интерпретировать другие заполнители. Если пользовательский формат включает точку, например, заполнитель языкового формата указывает, является ли точка десятичным разделителем (ja-JP) или разделителем тысяч (es-ES).

Подробнее см. статью о работе с датами и временем.

Функция Text также может конвертировать любой тип данных в текстовое представление, используя формат по умолчанию. Используйте это для передачи нетекстовых значений в текстовые функции, такие как Len, Right и IsMatch.

Предопределенные форматы даты и времени

Для этих примеров используются дата и время: вторник, 7 апреля, 2020 20:26:59.180, в часовом поясе UTC–7 часов.

Перечисление DateTimeFormat Описание Примеры (используя en-US)
Длинная дата Год с четырьмя цифрами, название месяца, дата месяца и день недели. Названия месяца и дня недели не сокращаются. "Tuesday, April 7, 2020"
ДлиннаяДатаВремя Год из четырех цифр, название месяца, день месяца и день недели, а также часы (в 12-часовом формате), минуты, секунды и обозначение AM/PM. Названия месяца и дня недели не сокращаются. "Tuesday, April 7, 2020 8:26:59 PM"
ДлиннаяДатаВремя24 Год из четырех цифр, месяц, день месяца и день недели, а также часы (в 24-часовом формате), минуты и секунды. Названия месяца и дня недели не сокращаются. "Tuesday, April 7, 2020 20:26:59"
Много времени Часы (в 12-часовом формате), минуты, секунды и обозначение AM/PM. "8:26:59 PM"
LongTime24 Часы (в 24-часовом формате), минуты и секунды. "20:26:59"
Короткая дата Четыре цифры года с цифровым обозначением месяца и день месяца. "4/7/2020"
КороткаяДатаВремя Четыре цифры года с числовым обозначением месяца и день месяца, а также часы (в 12-часовом формате), минуты, секунды и обозначение AM/PM. "4/7/2020 8:26 PM"
КороткаяДатаВремя24 Четыре цифры года с числовым обозначением месяца и день месяца, а также часы (в 24-часовом формате) и минуты. "4/7/2020 20:26"
Короткий срок Часы (в 12-часовом формате), минуты и обозначение AM/PM. "8:26 PM"
Короткий срок24 Часы (в 24-часовом формате) и минуты. "20:26"
универсальное глобальное время Значение даты и времени преобразуется в формат UTC на основе часового пояса для текущего пользователя и форматируется в соответствии со стандартом ISO 8601. "2020-04-08T03:26:59.180Z"

Заполнители для чисел

Заполнитель Описание
0 (ноль) Отображает незначащие нули, если число имеет меньше разрядов, чем количество нулей в строке форматирования. Например, формат #.00 позволяет отобразить значение 8,9 как 8,90.
# Работает так же, как 0 (ноль). Но в этом случае функция Text не возвращает дополнительные нули, если число имеет слева или справа от десятичного разделителя меньше цифр, чем количество символов # в строке форматирования. Например, число 8,9 при использовании формата #.## будет отображаться как 8,9.
. (точка) Отображает символ десятичного разделителя. Поведение этого символа зависит от языка пользовательского формата, подробные сведения см. в разделе Глобальные приложения.
, (запятая) Отображает символ разделителя разрядов, обычно отделяющий значения тысяч. Текст разделяет группы запятыми, если формат содержит запятую, заключенную в знаки номера (#) или нули. Поведение этого символа зависит от языка пользовательского формата, подробные сведения см. в разделе Глобальные приложения.

Если число имеет больше разрядов справа от десятичного разделителя, чем количество заполнителей в строке форматирования, число округляется до стольких десятичных разрядов, сколько указано заполнителей. Если число имеет больше разрядов слева от десятичного разделителя, чем количество заполнителей в строке форматирования, отображаются все дополнительные цифры. Если в строке форматирования слева от десятичной запятой указаны только символы номера (#), числа меньше 1 начинаются с десятичного разделителя (например, .47).

Заполнители даты и времени

Заполнитель Описание
м Отображает месяц в виде числа без нуля в начале.
мм Отображает месяц в виде числа с нулем в начале, если требуется.
М-м-м Отображает сокращенное название месяца (от янв до дек).
мммм Отображает полное название месяца (от января до декабря).
г Отображает день месяца в виде числа без нуля в начале.
дд Отображает день месяца в виде числа с нулем в начале, если требуется.
ддд Отображает сокращенное название дня недели (от вс до сб).
дддд Отображает полное название дня недели (от воскресенья до субботы).
гг Отображает год в виде двузначного числа.
гггг Отображает год в виде четырехзначного числа.
час Отображает время в виде числа без нуля в начале.
чч Отображает часы в виде числа с нулем в начале, если требуется. Если строка форматирования содержит обозначения AM или PM, часы отображаются в 12-часовом формате. В противном случае часы отображаются в 24-часовом формате.
м Отображает минуты в виде числа без нуля в начале.

Этот заполнитель должен располагаться сразу после символов h или hh или непосредственно перед символами ss; в противном случае функция Text возвращает не минуты, а номер месяца.
мм Отображает минуты в виде числа с нулем в начале, если требуется.

Этот заполнитель должен располагаться сразу после символов h или hh или непосредственно перед символами ss. В противном случае функция Text возвращает не минуты, а месяц.
с Отображает секунды в виде числа без нуля в начале.
SS Отображает секунды в виде числа с нулем в начале, если требуется.
ф Отображает доли секунды.
Утро/вечер, a/p Отображает часы в 12-часовом формате. Текст возвращает «AM» или «a» для времени с полуночи до полудня и «PM» или «p» для времени с полудня до полуночи

Литеральные заполнители

В строку форматирования можно включить также перечисленные ниже символы. Функция Text будет отображать их без изменения. Остальные символы зарезервированы для новых заполнителей, поэтому их не следует использовать.

Символ Описание
Любой символ валюты Знак доллара, знак центов, знак евро, и т. д.
+ Знак "плюс"
( Левая круглая скобка
: Двоеточие
^ Диакритический знак циркумфлекс (крышка)
' Апостроф
{ Левая фигурная скобка
< Знак "меньше"
= Знак "равно"
- Знак "минус"
/ Косая черта
) Правая круглая скобка
& Амперсанд
~ Тильда
} Правая фигурная скобка
> Знак "больше"
  Символ пробела

Глобальные приложения

Функция Text учитывает региональные форматы. Во многих языках она используется для правильного оформления дат, времени, валют и чисел. Чтобы сделать все правильно, ей нужны два блока информации.

  • Язык пользовательского формата: Как следует интерпретировать пользовательский формат для производителей? Знаки разделителей (. и ,) имеют разные значения в разных языках. Если вы указываете пользовательский формат, вы можете включить языковой заполнитель или принять значение по умолчанию, которое отражает язык, который установлен в вашем устройстве. Еще проще, вы можете использовать один из предопределенных форматов даты и времени, которые не зависят от языка.
  • Язык результата: На каком языке должен отображаться результат функции для пользователей? Названия месяцев и дней недели должны быть на соответствующем языке для пользователя приложения, который можно указать, добавив третий необязательный аргумент к функции Text.

Для обоих вы указываете язык с помощью языкового тега. Чтобы увидеть список поддерживаемых языков, введите в строке формул или на вкладке Дополнительно команду Text( 1234, "", ) и затем изучите список языковых обозначений, которые будут предложены в качестве значений для третьего аргумента.

Заполнитель языка

Чтобы указать язык пользовательского формата, используйте следующий синтаксис.

Заполнитель Описание
[$-LanguageTag] LanguageTag — это языковой тег, возвращаемый функцией Language . Можно указать только язык (например [$en] для английского языка), или в сочетании с обозначением региона (например [$-en-GB] для английского языка и Великобритании).

Заполнитель с указанием языка может находиться в любом месте пользовательской строки форматирования, но должен встречаться только один раз.

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

[$-en-US] предполагается, если этот заполнитель отсутствует при запуске вашего приложения.

Заметка

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

Тег для языка результата

Результат функции Text включает строковые названия месяцев и дней недели в переводе на нужный язык, а также соответствующие обозначения AM/PM, десятичные разделители и разделители разрядов.

По умолчанию функция Text использует язык пользователя, запустившего приложение. Функция Language возвращает тег языка для текущего пользователя. Это значение по умолчанию можно переопределить, указав тег языка при запуске функции Text в виде третьего аргумента.

Синтаксис

Текст( ЧислоИлиДатаВремя, ФорматДатыВремениПеречисление [, ТегЯзыкаРезультата ] )

  • NumberOrDateTime - Обязательно. Числовое значение или значение даты и времени, которое нужно отформатировать.
  • DateTimeFormat - Обязательно. Значение из перечисления DateTimeFormat.
  • ResultLanguageTag - Необязательно. Тег языка для форматирования результата. По умолчанию используется язык текущего пользователя.

Текст( ЧислоИлиДатаВремя, ПользовательскийФормат [, ТегЯзыкаРезультата ] )

  • Номер - Обязательно. Числовое значение или значение даты и времени, которое нужно отформатировать.
  • CustomFormat - Обязательно. Один или несколько заполнителей, заключенные в двойные кавычки.
  • ResultLanguageTag - Необязательно. Тег языка для форматирования результата. По умолчанию используется язык текущего пользователя.

Текст( AnyValue )

  • Любое значение - Обязательно. Значение для преобразования в текстовое представление. Формат по умолчанию используется.

Текст ( Нетипизированный )

  • Нетипизировано - Обязательно. нетипизированный объект , представляющий строку. Допустимые значения зависят от нетипизированного поставщика. В случае с JSON, если нетипизированный объект является числом или логическим значением, он будет преобразован в текст.

Примеры

Если не указано иное, пользователь, выполняющий эти формулы, находится в США и использует английский язык. Функция Language возвращает значение "en-US".

Номер

Формула Описание Результат
Текст( 1234.59, "####.#" ) Форматирует число с одним знаком после десятичного разделителя. "1234.6"
Текст( 8.9, "#.000" ) Дополняет десятичную часть числа замыкающими нулями, если потребуется. "8.900"
Текст( 0.631, "0.#" ) Дополняет целую часть числа ведущими нулями, если потребуется. "0.6"
Текст( 12, "#.0#" )
Текст( 1234.568, "#.0#" )
Дополняет десятичную часть числа нулями до одного десятичного разряда, но использует два десятичных разряда, если они предоставлены. "12.0"
"1234.57"
Текст( 12000, "$ #,###" )
Текст( 1200000, "$ #,###" )
Добавляет разделитель разрядов после каждых трех цифр целой части числа, а также добавляет символ валюты. "$ 12,000"
"$ 1,200,000"

Дата и время

  • Результаты по состоянию на 14:37:47 в понедельник, 23 ноября 2015 г.
  • США, тихоокеанское стандартное время (UTC–8)
Формула Описание Результат
Текст(Сейчас(), ФорматДатыВремени.ДлиннаяДата) Форматирует как длинную строку даты с соблюдением языка и языковых стандартов текущего пользователя. "Monday, November 23, 2015"
Текст(Сейчас(), ФорматДатыВремени.ДлинныйДатаВремя) Форматирует как длинную строку даты и времени с соблюдением языка и языковых стандартов текущего пользователя и временем в 12-часовом формате. "Monday, November 23, 2015 2:37:47 PM"
Текст(Сейчас(), ФорматДатыВремени.LongTime24) Форматирует как длинную строку времени в 24-часовом формате. "14:37:47"
Текст(Сейчас(), ФорматДатыВремени.КороткаяДата) Форматирует как короткую строку даты с соблюдением языка и языковых стандартов текущего пользователя. "11/23/2015"
Текст( Сейчас(), "д-ммм-гг" ) Форматирует в соответствии с переданными заполнителями:
  • d для однозначного или двузначного дня месяца
  • - как буквальный символ, скопированный в результат
  • mmm для трехбуквенного сокращения месяца
  • - как еще один буквенный символ, скопированный в результат
  • yy для двузначного сокращения года
"23-Nov-15"
Text(1448318857*1000, "mmm. dd, yyyy (hh:mm:ss AM/PM)") Показывает значение даты и времени Unix в удобочитаемом формате, если вы умножаете исходное значение на 1000. "Nov. 23, 2015 (02:47:37 PM)"

Глобальные приложения

Формула Описание Результат
Текст(1234567.89, "[$-fr-FR]# ###,## €", "fr-FR") Показывает пробел как разделитель групп, запятую как десятичный разделитель и как символ валюты. "1 234 567,89 €"
Текст(1234567,89; "[$-fr-FR]# ###,## €") Если исходные данные следуют французскому правилу использования запятой в качестве десятичного разделителя, вы должны изменить свой языковой стандарт на французский и отделить аргументы точкой с запятой вместо запятой, чтобы получить тот же результат, что и выше. "1 234 567,89 €"
Текст( Date(2016,1,31), "дддд мммм д") Возвращает день недели, месяц и день месяца на языке текущего пользователя. Так как все эти заполнители не зависят от языка, указывать тег языка в строке форматирования не требуется. "Воскресенье, Январь 31"
Текст( Date(2016,1,31), "дддд мммм д", "es-ES" ) Возвращает день недели, месяц и день месяца на языке "es-ES". "domingo enero 31"

Преобразование значений в текст

Формула Описание Результат
Текст( 1234567.89 ) Преобразует число в строку. Не существует разделителей тысяч или контроля над количеством цифр до или после десятичного разделителя; для большего контроля укажите заполнители числа в качестве второго аргумента. "1234567.89"
Текст( ДатаВремяЗначение( "01/04/2003" ) ) Преобразует значение даты/времени в строку текста. Для управления преобразованием укажите либо элемент перечисления DateTimeFormat, либо строку пользовательского формата. "1/4/2003 12:00 AM"
Текст( правда ) Преобразует логическое значение в строку. "true"
Текст(GUID()) Преобразует созданное значение GUID в строку. "f8b10550-0f12-4f08-9aa3-bb10958bc3ff"
Слева( Текст( GUID() ), 4 ) Возвращает первые четыре символа сгенерированного GUID. "2d9c"