适用于: 画布应用
Copilot Studio
Desktop 流
Dataverse 公式列
模型驱动应用
Power Platform CLI
Dataverse 函数
Power Pages
转换任何值并将数字或日期/时间值的格式设置为文本字符串。
描述
该 Text 函数基于下列类型的参数之一设置数字或日期/时间值的格式:
- 预定义的日期/时间格式,可使用 DateTimeFormat 枚举指定。 对于日期和时间,首选此方法,因为它会根据每个用户的语言和区域进行自动调整。
- 一种自定义格式,其中包含一串占位符,用于定义数字是否显示小数分隔符,日期是显示月份全名、月份缩写还是月份数字等内容。 Power Apps 支持 Microsoft Excel 执行的一部分占位符。 在此字符串中,语言占位符指定用于解释其他占位符的语言。 例如,如果自定义格式包含句点,语言格式占位符将指定句点是小数分隔符 (ja-JP) 还是千位分隔符 (es-ES)。
有关详细信息,请参阅处理日期和时间。
该 Text 函数还可以使用默认格式将任何数据类型转换为文本表示形式。 使用此函数可以将非文本值传递给基于文本的函数,如 Len、Right 和 IsMatch。
预定义的日期/时间格式
对于这些示例,使用的日期和时间是 Tuesday, April 7, 2020 8:26:59.180 PM,时区在 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” |
| 长期 | 时(12 小时制)、分、秒和 AM/PM 标记。 | “8:26:59 PM” |
| 朗时 24 | 时(24 小时制)、分和秒。 | “20:26:59” |
| ShortDate | 四位数年份和数字月份及月份日期。 | “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(世界标准时间) | 根据当前用户所在的时区将日期/时间值转换为 UTC,并根据 ISO 8601 标准设置格式。 | “2020-04-08T03:26:59.180Z” |
数字占位符
| 占位符 | 描述 |
|---|---|
| 0 (零) | 如果数字的位数少于包含零的格式中的位数,显示无意义的零。 例如,如果要将 8.9 显示为 8.90,请使用 #.00 格式。 |
| # | 与 0(零)的规则相同。 但是,当数字在小数的任一端的位数少于格式中的 #符号时, Text 不会返回额外的零。 例如,如果自定义格式为 #.##,而要设置格式的数字为 8.9,则显示的是 8.9。 |
| . (period) | 在数字中显示小数点。 视自定义格式的语言而定;请参阅全局应用,了解更多详细信息。 |
| , (逗号) | 在数字中显示分组分隔符,通常是千位分隔符。 Text 如果格式包含由数字符号 () 或零括起来的逗号,则用逗号分隔#组。 视自定义格式的语言而定;请参阅全局应用,了解更多详细信息。 |
如果数字的小数点后面的位数多于包含占位符的格式中的位数,则数字四舍五入为与占位符相同的位数。 如果小数点前面的位数多于包含占位符的格式中的位数,则显示多余的位数。 如果格式中小数点前面仅包含数字记号 (#),则小于 1 的数字以小数点开头(例如,.47)。
日期和时间占位符
| 占位符 | 描述 |
|---|---|
| m | 将月份显示为不带前导零的数字。 |
| mm | 视情况将月份显示为带前导零的数字。 |
| mmm | 以缩写形式(Jan 到 Dec)显示月份。 |
| mmmm | 以全称形式(January 到 December)显示月份。 |
| d | 将日期显示为不带前导零的数字。 |
| dd | 视情况将日期显示为带前导零的数字。 |
| ddd | 以缩写形式(Sun 到 Sat)显示日期。 |
| dddd | 以全称形式(Sunday 到 Saturday)显示日期。 |
| yy | 将年份显示为两位数的数字。 |
| yyyy | 将年份显示为四位数的数字。 |
| h | 将小时显示为不带前导零的数字。 |
| 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] 进一步指定英国)。 |
语言占位符可以显示在自定义格式中的任意位置,但只能出现一次。
如果您指定不带语言占位符的自定义格式,并且从全局角度看该格式不明确,将会自动插入当前语言的语言标记。
[$-zh-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 - 必需。 要转换为文本表示形式的值。 使用默认格式。
Text ( 动态 )
示例
除非另外指定,否则运行这些公式的用户位于美国,且已选择英语作为其语言。 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” |
日期/时间
- 2015 年 11 月 23 日(星期一)2:37:47 PM
- 美国太平洋时区 (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”) | 使用占位符的格式:
|
“23-Nov-15” |
| Text(1448318857*1000,“mmm. dd, yyyy (hh:mm:ss AM/PM)“) | 如果将源值乘以 1,000,则以人类可读的格式显示Unix 日期/时间值。 | “Nov. 23, 2015 (02:47:37 PM)” |
全局应用
| 公式 | 描述 | 结果 |
|---|---|---|
| Text(1234567.89, “[$-fr-FR]# ###,## €”, “fr-FR”) | 将空格显示为分组分隔符,将逗号显示为小数点分隔符,并 € 显示为货币符号。 | “1 234 567,89 €” |
| Text(1234567,89;“[$-fr-FR]# ##,## €”) | 如果源数据遵循使用逗号作为小数分隔符的法语习惯,则必须将区域设置更改为法语,并使用分号(而不是逗号)分隔参数,以获得与上方相同的结果。 | “1 234 567,89 €” |
| Text(日期(2016,1,31),“ddd mmmm d” ) | 以当前用户的语言返回星期几、月份和相应月份中的多少号。 由于所有占位符都与语言无关,因此无需使用格式文本语言标记。 | “Sunday January 31” |
| Text(日期(2016,1,31),“ddd 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” |
| 左( Text(GUID),4) | 返回生成的 GUID 的前四个字符。 | “2d9c” |