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


Функция Text

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

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

Описание

Функция 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)
LongDate Год с четырьмя цифрами, название месяца, дата месяца и день недели. Названия месяца и дня недели не сокращаются. "Tuesday, April 7, 2020"
LongDateTime Год из четырех цифр, название месяца, день месяца и день недели, а также часы (в 12-часовом формате), минуты, секунды и обозначение AM/PM. Названия месяца и дня недели не сокращаются. "Tuesday, April 7, 2020 8:26:59 PM"
LongDateTime24 Год из четырех цифр, месяц, день месяца и день недели, а также часы (в 24-часовом формате), минуты и секунды. Названия месяца и дня недели не сокращаются. "Tuesday, April 7, 2020 20:26:59"
LongTime Часы (в 12-часовом формате), минуты, секунды и обозначение AM/PM. "8:26:59 PM"
LongTime24 Часы (в 24-часовом формате), минуты и секунды. "20:26:59"
ShortDate Четыре цифры года с цифровым обозначением месяца и день месяца. "4/7/2020"
ShortDateTime Четыре цифры года с числовым обозначением месяца и день месяца, а также часы (в 12-часовом формате), минуты, секунды и обозначение AM/PM. "4/7/2020 8:26 PM"
ShortDateTime24 Четыре цифры года с числовым обозначением месяца и день месяца, а также часы (в 24-часовом формате) и минуты. "4/7/2020 20:26"
ShortTime Часы (в 12-часовом формате), минуты и обозначение AM/PM. "8:26 PM"
ShortTime24 Часы (в 24-часовом формате) и минуты. "20:26"
UTC Значение даты и времени преобразуется в формат UTC на основе часового пояса для текущего пользователя и форматируется в соответствии со стандартом ISO 8601. "2020-04-08T03:26:59.180Z"

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

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

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

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

Заполнитель Описание
m Отображает месяц в виде числа без нуля в начале.
mm Отображает месяц в виде числа с нулем в начале, если требуется.
mmm Отображает сокращенное название месяца (от янв до дек).
mmmm Отображает полное название месяца (от января до декабря).
дн. Отображает день месяца в виде числа без нуля в начале.
dd Отображает день месяца в виде числа с нулем в начале, если требуется.
ddd Отображает сокращенное название дня недели (от вс до сб).
dddd Отображает полное название дня недели (от воскресенья до субботы).
yy Отображает год в виде двузначного числа.
yyyy Отображает год в виде четырехзначного числа.
ч Отображает время в виде числа без нуля в начале.
hh Отображает часы в виде числа с нулем в начале, если требуется. Если строка форматирования содержит обозначения AM или PM, часы отображаются в 12-часовом формате. В противном случае часы отображаются в 24-часовом формате.
m Отображает минуты в виде числа без нуля в начале.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Если этот заполнитель отсутствует при выполнении приложения, по умолчанию подразумевается наличие тега [$-en-US].

Заметка

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

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

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

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

Синтаксис

Text( NumberOrDateTime, DateTimeFormatEnum [, ResultLanguageTag ] )

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

Text( NumberOrDateTime, CustomFormat [, ResultLanguageTag ] )

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

Text( AnyValue )

  • AnyValue — обязательный аргумент. Значение для преобразования в текстовое представление. Формат по умолчанию используется.

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

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

Примеры

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

Номер

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

Дата и время

  • Результаты по состоянию на 14:37:47 в понедельник, 23 ноября 2015 г.
  • США, тихоокеанское стандартное время (UTC–8)
Формула Описание Результат
Text( Now(), DateTimeFormat.LongDate ) Форматирует как длинную строку даты с соблюдением языка и языковых стандартов текущего пользователя. "Monday, November 23, 2015"
Text( Now(), DateTimeFormat.LongDateTime ) Форматирует как длинную строку даты и времени с соблюдением языка и языковых стандартов текущего пользователя и временем в 12-часовом формате. "Monday, November 23, 2015 2:37:47 PM"
Text( Now(), DateTimeFormat.LongTime24 ) Форматирует как длинную строку времени в 24-часовом формате. "14:37:47"
Text( Now(), DateTimeFormat.ShortDate ) Форматирует как короткую строку даты с соблюдением языка и языковых стандартов текущего пользователя. "11/23/2015"
Text( Now(), "d-mmm-yy" ) Форматирует в соответствии с переданными заполнителями:
  • 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)"

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

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

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

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