设置数字或日期/时间值的格式,使其作为文本字符串显示。

说明

Text 函数根据下面的一种参数类型设置数字或日期/时间值的格式:

  • 预定义的日期/时间格式,可使用 DateTimeFormat 枚举指定。 对于日期和时间,首选此方法,因为它会根据每个用户的语言和地理位置进行自动调整。
  • 自定义格式,包含描述了如何设置数字或日期/时间值格式的占位符的文本字符串。 占位符定义了要显示的位数、是否应使用分组分隔符及如何显示月份名称。 PowerApps 支持 Microsoft Excel 支持的一部分占位符。

有关详细信息,请参阅处理日期和时间

预定义的日期/时间格式

预定义的格式 说明
DateTimeFormat.LongDate 完整的年份、月份、相应月份中的多少号和星期几。 月份名称和星期几不采用缩写形式。
DateTimeFormat.LongDateTime 完整的年份、月份、相应月份中的多少号和星期几,外加时(12 小时制)、分、秒和 AM/PM 标记。 月份名称和星期几不采用缩写形式。
DateTimeFormat.LongDateTime24 完整的年份、月份、相应月份中的多少号和星期几,外加时(24 小时制)、分和秒。 月份名称和星期几不采用缩写形式。
DateTimeFormat.LongTime 时(12 小时制)、分、秒和 AM/PM 标记。 与 ShortTime 相同。
DateTimeFormat.LongTime24 时(24 小时制)、分和秒。 与 ShortTime24 相同。
DateTimeFormat.ShortDate 四位数的年份和两位数的月份及相应月份中的多少号。
DateTimeFormat.ShortDateTime 四位数的年份和两位数的月份及相应月份中的多少号,外加时(12 小时制)、分、秒和 AM/PM 标记。
DateTimeFormat.ShortDateTime24 四位数的年份和两位数的月份及相应月份中的多少号,外加时(24 小时制)、分和秒。
DateTimeFormat.ShortTime 时(12 小时制)、分、秒和 AM/PM 标记。 与 LongTime 相同。
DateTimeFormat.ShortTime24 时(24 小时制)、分和秒。 与 LongTime24 相同。
DateTimeFormat.UTC 根据当前用户所在的时区将日期/时间值转换为 UTC,并根据 ISO 8601 标准设置格式。

数字占位符

占位符 说明
0(*零*) 如果数字的位数少于包含零的格式中的位数,显示无意义的零。 例如,如果要将 8.9 显示为 8.90,请使用 #.00 格式。
# 0(零)的规则相同。 不过,如果数字的小数点前/后位数少于包含 # 符号的格式中的位数,Text 不返回多余的零。 例如,如果自定义格式为 #.##,而要设置格式的数字为 8.9,则显示的是 8.9
. (*句点*) 在数字中显示小数点。 视自定义格式的语言而定。请参阅全局应用,了解更多详情。
,(*逗号*) 在数字中显示分组分隔符,通常是千位分隔符。 如果格式中的逗号的前后是数字记号 (#) 或零,Text 使用逗号分隔各组。 视自定义格式的语言而定。请参阅全局应用,了解更多详情。

如果数字的小数点后面的位数多于包含占位符的格式中的位数,则数字四舍五入为与占位符相同的位数。 如果小数点前面的位数多于包含占位符的格式中的位数,则显示多余的位数。 如果格式中小数点前面仅包含数字记号 (#),则小于 1 的数字以小数点开头(例如,.47)。

日期和时间占位符

占位符 说明
m 将月份显示为不带前导零的数字。
mm 视情况将月份显示为带前导零的数字。
mmm 以缩写形式(JanDec)显示月份。
mmmm 以全称形式(JanuaryDecember)显示月份。
d 将日期显示为不带前导零的数字。
dd 视情况将日期显示为带前导零的数字。
ddd 以缩写形式(SunSat)显示日期。
dddd 以全称形式(SundaySaturday)显示日期。
yy 将年份显示为两位数的数字。
yyyy 将年份显示为四位数的数字。
h 将小时显示为不带前导零的数字。
hh 视情况将小时显示为带前导零的数字。 如果格式中包含 AMPM,以 12 小时制显示小时。 如果不包含,以 24 小时制显示小时。
m 将分显示为不带前导零的数字。 注意:mmm 代码必须紧跟在 hhh 代码之后,或后面紧跟 ss 代码。否则 Text 会返回月份,而不是分。
mm 视情况将分显示为带前导零的数字。 注意:mmm 占位符必须紧跟在 hhh 占位符之后,或后面紧跟 ss 占位符。 否则,Text 会返回月份,而不是分。
s 将秒显示为不带前导零的数字。
ss 视情况将秒显示为带前导零的数字。
f 显示秒的小数部分。
AM/PMam/pmA/Pa/p 以 12 小时制显示小时。 Text 对午夜至正午这一时间段的时间返回“AM”、“am”、“A”或“a”,对正午至午夜这一时间段的时间返回“PM”、“pm”、“P”或“p”。

文本占位符

可以在格式字符串中添加以下任意字符。 这些字符将按原样显示在 Text 结果中。 其他字符留待用于以后的占位符,因此不得使用其他字符。

字符 说明
任意货币符号 美元符号、分币符号、欧元符号等
+ 正号
( 左小括号
: 冒号
^ 扬抑符(脱字号)
' 撇号
{ 左花括号
< 小于号
= 等于号
- 负号
/ 左斜线
) 右小括号
& & 号
~ 波形符
} 右花括号
> 大于号
  空格字符

全局应用

Text 函数具有全局感知能力。 对于各种语言,此函数都能确定如何正确写出日期、时间、货币和数字。 它需要获取以下两条信息才能正常运行:

  • 自定义格式的语言:从作者角度出发,需要考虑的是,应如何解读自定义格式。 分隔符(.,)的含义因语言而异。 这需要通过包含语言标记的特殊占位符进行处理。 预定义的日期/时间格式未指定语言,这就更简单了。

  • 结果的语言:从用户角度出发,需要考虑的是,应对函数的结果使用何种语言。 必须使用应用用户的语言显示月份名称和星期几。 这需要通过 Text 函数的第三个可选参数进行处理。

无论是哪条信息,语言都是通过语言标记进行提供。 若要查看支持的语言列表,请在编辑栏或高级视图中键入 Text( 1234, "", ),然后滚动查看为第三个参数推荐的区域设置列表。

自定义格式语言占位符

若要指定自定义格式的语言,请使用:

占位符 说明
[$-LanguageTag] LanguageTagLanguage 函数返回的语言标记。 语言标记的形式可以是只包含语言,如 [$-en] 表示英语;也可以是包含区域,如 [$-en-GB] 进一步指定英国。

语言占位符可以显示在自定义格式中的任意位置,但只能出现一次。

如果你在编写公式时未提供语言占位符且从全局角度来看格式字符串不明确,那么创作工具会自动插入当前语言的语言标记。

如果在应用运行时未找到此占位符,则假定是 [$-en-US]

注意:在以后的版本中,此占位符的语法可能会有所变化,以免与 Excel 支持的其他类似占位符混淆。

结果语言标记

Text 结果包含月份、星期几和 AM/PM 标记的已翻译字符串,以及相应的组分隔符和十进制分隔符。

默认情况下,Text 使用应用用户的语言。 Language 函数返回当前用户的语言标记。 可以为 Text 的第三个可选参数提供语言标记,从而替代此默认设置。

语法

Text( Number, DateTimeFormatEnum [, ResultLanguageTag ] )

  • Number - 必需。 要设置格式的数字或日期/时间值。
  • DateTimeFormat - 必需。 DateTimeFormat 枚举的成员。
  • ResultLanguageTag - 可选。 要对结果文本使用的语言标记。 默认使用当前用户的语言。

Text( Number, CustomFormat [, ResultLanguageTag ] )

  • Number - 必需。 要设置格式的数字或日期/时间值。
  • CustomFormat - 必需。 用双引号括起的一个或多个占位符。
  • ResultLanguageTag - 可选。 要对结果文本使用的语言标记。 默认使用当前用户的语言。

示例

运行这些公式的用户位于美国,且已选择英语作为其语言。 Language 函数返回的是“en-US”。

Number

公式 说明 结果
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" ) 使用占位符的格式:
  • d 表示相应月份中的多少号,一位数或两位数
  • - 是复制到结果中的文本字符
  • mmm 表示三个字母的月份缩写
  • - 是另一个复制到结果中的文本字符
  • yy 表示两位数的年份缩写
"23-Nov-15"

全局应用

公式 说明 结果
Text( 1234567.89, "[$-en-US]$ #,###" ) , 解读为每三个字符之间的组分隔符,并将 $ 解读为货币符号。 由于不会显示任何小数位,因此值会四舍五入到整数位。 在此示例中,[$-en-US] 是可选的,因为它是默认设置。 "$ 1,234,568"
Text( 1234567.89, "[$-es-ES]€ #,###" ) , 解读为十进制分隔符,并将 解读为货币符号。 由于 [$-fr-FR] 仅决定了格式字符串的解读方式,因此结果将使用通过默认的“en-US”语言标记进行解读的字符:将 . (句点)解读为十进制分隔符,并将 $ 解读为货币符号。 "$ 1234567.89"
Text( 1234567.89, "[$-es-ES]€ #,###", "es-ES" ) , 解读为十进制分隔符。 结果语言标记已设置为“fr-FR”。这样一来,将 ,(逗号)解读为十进制分隔符,并将 解读为货币符号。 "€ 1234567,89"
Text( Date(2016,1,31), "dddd mmmm d" ) 以当前用户的语言返回星期几、月份和相应月份中的多少号。 由于所有占位符都与语言无关,因此无需使用格式文本语言标记。 "Saturday January 31"
Text( Date(2016,1,31), "dddd mmmm d", "es-ES" ) 以“es-ES”语言返回星期几、月份和相应月份中的多少号。 "domingo enero 31"