Skip to main content

数据格式化

货币值

格式符初始值输出样式备注
{0:C}10.2¥10.20当前环境币别,未指定小数位数参数,则默认2位小数
{0:C1}10.25¥10.3当前环境币别,指定保留一位小数,四舍五入

整数

格式符初始值输出样式备注
{0:D}1234512345以数值模式显示,默认不调整位数
{0:D6}12345012345因指定6位数,则前置补0
{0:D6}-12345-012345负数,则负号后补0

所有数值

格式符初始值输出样式备注
{0:G}1234.51234.5默认为原有数值位数
{0:G4}1234.512354位有效位数,则四舍五入,仅保留4位数字
{0:G4}123451.235E+04仅保留4位有效位,已经小于有效位数了
{0:G6}1234.51234.5超过当前有效位数,仍保留原位数

整数和十进制小数

格式符初始值输出样式备注
{0:F}1234512345.00默认保留2位小数
{0:F}12345.612345.60默认保留2位小数
{0:F0}12345.612346保留0位小数,四舍五入
{0:F1}12345.6712345.7保留1位小数,四舍五入
{0:F3}-12345.6-12345.600支持负数,补为3位小数
{0:N}1234512,345.00默认2位小数,整数部分添加千分位
{0:N3}12345.612,345.600指定3位小数,整数部分添加千分位
{0:N3}-12345.6-12,345.600指定3位小数,整数部分添加千分位

百分比

格式符初始值输出样式备注
{0:P}0.1234512.35%乘以100后,默认保留2位小数,四舍五入
{0:P1}0.1234512.3%乘以100后,保留1位小数,四舍五入
{0:P1}1.2345123.5%乘以100后,保留1位小数,四舍五入

十六进制

格式符初始值输出样式备注
{0:X}15F整数,转换成十六进制
{0:X2}150F整数,转换成十六进制
{0:X}255FF整数,转换成十六进制
{0:X}-255FFFFFF01整数,转换成十六进制

日期格式

格式符初始值输出样式备注
{0:d}2009-06-15T13:45:306/15/2009短日期模式(en-US)
{0:D}2009-06-15T13:45:30Monday, June 15, 2009长日期模式(en-US)
{0:f}2009-06-15T13:45:30Monday, June 15, 2009 1:45 PM完整日期/时间模式(短时间)(en-US)
{0:F}2009-06-15T13:45:30Monday, June 15, 2009 1:45:30 PM完整日期/时间模式(长时间)(en-US)
{0:g}2009-06-15T13:45:306/15/2009 1:45 PM常规日期/时间模式(短时间)(en-US)
{0:G}2009-06-15T13:45:306/15/2009 1:45:30 PM常规日期/时间模式(长时间)(en-US)
{0:M}/{0:m}2009-06-15T13:45:30June 15月/日模式(en-US)
{0:R}/{0:r}2009-06-15T13:45:30Mon, 15 Jun 2009 20:45:30 GMTRFC1123 模式
{0:s}2009-06-15T13:45:30 (DateTimeKind.Local)2009-06-15T13:45:30可排序日期/时间模式
{0:t}2009-06-15T13:45:301:45 PM短时间模式(en-US)
{0:T}2009-06-15T13:45:301:45:30 PM长时间模式(en-US)
{0:u}2009-06-15T13:45:302009-06-15 13:45:30Z通用可排序日期/时间模式
{0:U}2009-06-15T13:45:30Monday, June 15, 2009 8:45:30 PM通用完整日期/时间模式(en-US)
{0:Y}/{0:y}2009-06-15T13:45:30June 2009年月模式(en-US)

下面提供的是自定义的格式字符串,区别与上述的系统标识格式符号,自定义的格式符是可以多个连写来标识一个特定格式的,如果是碰到一个单个的自定义格式符时,优先会按系统标准符号进行解析 使用年方式如下:{0:0000}\{0:#,##\}, \{0:dd MM YYYY\}

自定义数字格式符

格式符属性说明示例
0零占位符用对应的数字(如果存在)替换零;否则,将在结果字符串中显示零。1234.5678 ("00000") -> 01235; 0.45678 ("0.00", en-US) -> 0.46; 0.45678 ("0.00", fr-FR) -> 0,46
#数字占位符用对应的数字(如果存在)替换“#”符号;否则,不会在结果字符串中显示任何数字。请注意,如果输入字符串中的相应数字是无意义的 0,则在结果字符串中不会出现任何数字。 例如,0003 ("####") -> 3。1234.5678 ("#####") -> 1235; 0.45678 ("#.##", en-US) -> .46; 0.45678 ("#.##", fr-FR) -> ,46
.小数点确定小数点分隔符在结果字符串中的位置。0.45678 ("0.00", en-US) -> 0.46; 0.45678 ("0.00", fr-FR) -> 0,46
,组分隔符和数字比例换算用作组分隔符和数字比例换算说明符。 作为组分隔符时,它在各个组之间插入本地化的组分隔符字符。 作为数字比例换算说明符,对于每个指定的逗号,它将数字除以 1000。组分隔符说明符:2147483647 ("##,#", en-US) -> 2,147,483,647; 2147483647 ("##,#", es-ES) -> 2.147.483.647; 比例换算说明符: 2147483647 ("#,#,,", en-US) -> 2,147; 2147483647 ("#,#,,", es-ES) -> 2.147
%百分比占位符将数字乘以 100,并在结果字符串中插入本地化的百分比符号。0.3697 ("%#0.00", en-US) -> %36.97; 0.3697 ("%#0.00", el-GR) -> %36,97; 0.3697 ("##.0 %", en-US) -> 37.0 %; 0.3697 ("##.0 %", el-GR) -> 37,0 %
千分比占位符将数字乘以 1000,并在结果字符串中插入本地化的千分比符号。0.03697 ("#0.00‰", en-US) -> 36.97‰; 0.03697 ("#0.00‰", ru-RU) -> 36,97‰
E0,E+0,E-0,E0,E+0,E-0指数表示法如果后跟至少一个 0(零),则使用指数表示法设置结果格式。 “E”或“e”指示指数符号在结果字符串中是大写还是小写。 跟在“E”或“e”字符后面的零的数目确定指数中的最小位数。 加号 (+) 指示符号字符总是置于指数前面。 减号 (-) 指示符号字符仅置于负指数前面。987654 ("#0.0e0") -> 98.8e4; 1503.92311 ("0.0##e+00") -> 1.504e+03; 1.8901385E-16 ("0.0e+00") -> 1.9e-16
\转义符使下一个字符被解释为文本而不是自定义格式说明符987654 ("###00#") -> #987654#
string文本字符串分隔符指示应复制到未更改的结果字符串的封闭字符。68 ("# 'degrees'") -> 68 degrees; 68 ("#' degrees'") -> 68 degrees
;部分分隔符通过分隔格式字符串定义正数、负数和零各部分。12.345 ("#0.0#;(#0.0#);-\0-") -> 12.35; 0 ("#0.0#;(#0.0#);-\0-") -> -0-; -12.345 ("#0.0#;(#0.0#);-\0-") -> (12.35); 12.345 ("#0.0#;(#0.0#)") -> 12.35; 0 ("#0.0#;(#0.0#)") -> 0.0; -12.345 ("#0.0#;(#0.0#)") -> (12.35)

自定义日期格式符

格式符说明示例
d一个月中的某一天(1 到 31)2009-06-01T13:45:30 -> 1; 2009-06-15T13:45:30 -> 15
dd一个月中的某一天(01 到 31)。2009-06-01T13:45:30 -> 01; 2009-06-15T13:45:30 -> 15
ddd一周中某天的缩写名称。2009-06-15T13:45:30 -> Mon (en-US)
dddd一周中某天的完整名称2009-06-15T13:45:30 -> Monday (en-US)
f”日期和时间值的十分之几秒2009-06-15T13:45:30.6170000 -> 6; 2009-06-15T13:45:30.05 -> 0
ff日期和时间值的百分之几秒2009-06-15T13:45:30.6170000 -> 61; 2009-06-15T13:45:30.0050000 -> 00
fff日期和时间值的千分之几秒6/15/2009 13:45:30.617 -> 617; 6/15/2009 13:45:30.0005 -> 000
ffff日期和时间值的万分之几秒2009-06-15T13:45:30.6175000 -> 6175; 2009-06-15T13:45:30.0000500 -> 0000
fffff日期和时间值的十万分之几秒2009-06-15T13:45:30.6175400 -> 61754; 6/15/2009 13:45:30.000005 -> 00000
ffffff日期和时间值的百万分之几秒2009-06-15T13:45:30.6175420 -> 617542; 2009-06-15T13:45:30.0000005 -> 000000
fffffff日期和时间值的千万分之几秒2009-06-15T13:45:30.6175425 -> 6175425; 2009-06-15T13:45:30.0001150 -> 0001150
F如果非零,则为日期和时间值的十分之几秒。2009-06-15T13:45:30.6170000 -> 6; 2009-06-15T13:45:30.0500000 ->(无输出)
FF如果非零,则为日期和时间值的百分之几秒。2009-06-15T13:45:30.6170000 -> 61; 2009-06-15T13:45:30.0050000 ->(无输出)
FFF如果非零,则为日期和时间值的千分之几秒。2009-06-15T13:45:30.6170000 -> 617; 2009-06-15T13:45:30.0005000 ->(无输出)
FFFF如果非零,则为日期和时间值的万分之几秒。2009-06-15T13:45:30.5275000 -> 5275; 2009-06-15T13:45:30.0000500 ->(无输出)
FFFFF如果非零,则为日期和时间值的十万分之几秒。2009-06-15T13:45:30.6175400 -> 61754; 2009-06-15T13:45:30.0000050 ->(无输出)
FFFFFF如果非零,则为日期和时间值的百万分之几秒。2009-06-15T13:45:30.6175420 -> 617542; 2009-06-15T13:45:30.0000005 ->(无输出)
FFFFFFF如果非零,则为日期和时间值的千万分之几秒。2009-06-15T13:45:30.6175425 -> 6175425; 2009-06-15T13:45:30.0001150 -> 000115
g、gg时期或纪元。2009-06-15T13:45:30.6170000 -> A.D.
h采用 12 小时制的小时(从 1 到 12)2009-06-15T01:45:30 -> 1; 2009-06-15T13:45:30 -> 1
hh采用 12 小时制的小时(从 01 到 12)。2009-06-15T01:45:30 -> 01; 2009-06-15T13:45:30 -> 01
H采用 24 小时制的小时(从 0 到 23)2009-06-15T01:45:30 -> 1; 2009-06-15T13:45:30 -> 13
HH采用 24 小时制的小时(从 00 到 23)2009-06-15T01:45:30 -> 01; 2009-06-15T13:45:30 -> 13
K时区信息。带 DateTime 值:2009-06-15T13:45:30, Kind Unspecified ->2009-06-15T13:45:30, Kind Utc -> Z;2009-06-15T13:45:30, Kind Local -> -07:00(取决于本地计算机的设置);带 DateTimeOffset 值:2009-06-15T01:45:30-07:00 --> -07:00; 2009-06-15T08:45:30+00:00 --> +00:00
m分钟(0 到 59)2009-06-15T01:09:30 -> 9; 2009-06-15T13:29:30 -> 29
mm分钟(00 到 59)2009-06-15T01:09:30 -> 09; 2009-06-15T01:45:30 -> 45
M月份(1 到 12)2009-06-15T13:45:30 -> 6
MM月份(01 到 12)2009-06-15T13:45:30 -> 06
MMM月份的缩写名称2009-06-15T13:45:30 -> Jun (en-US)
MMMM月份的完整名称2009-06-15T13:45:30 -> June (en-US)
s秒(0 到 59)2009-06-15T13:45:09 -> 9
ss秒(00 到 59)2009-06-15T13:45:09 -> 09
tAM/PM 指示符的第一个字符2009-06-15T13:45:30 -> P (en-US)
ttAM/PM 指示符2009-06-15T13:45:30 -> PM (en-US); 2009-06-15T13:45:30 -> 午後 (ja-JP)
y年份(0 到 99)0001-01-01T00:00:00 -> 1; 0900-01-01T00:00:00 -> 0; 1900-01-01T00:00:00 -> 0; 2009-06-15T13:45:30 -> 9; 2019-06-15T13:45:30 -> 19
yy年份(00 到 99)0001-01-01T00:00:00 -> 01; 0900-01-01T00:00:00 -> 00; 1900-01-01T00:00:00 -> 00; 2019-06-15T13:45:30 -> 19
yyy年份(最少三位数字)0001-01-01T00:00:00 -> 001; 0900-01-01T00:00:00 -> 900; 1900-01-01T00:00:00 -> 1900; 2009-06-15T13:45:30 -> 2009
yyyy由四位数字表示的年份0001-01-01T00:00:00 -> 0001; 0900-01-01T00:00:00 -> 0900; 1900-01-01T00:00:00 -> 1900; 2009-06-15T13:45:30 -> 2009
yyyyy由五位数字表示的年份0001-01-01T00:00:00 -> 00001; 2009-06-15T13:45:30 -> 02009
z相对于 UTC 的小时偏移量,无前导零。2009-06-15T13:45:30-07:00 -> -7
zz相对于 UTC 的小时偏移量,带有表示一位数值的前导零。2009-06-15T13:45:30-07:00 -> -07
zzz相对于 UTC 的小时和分钟偏移量2009-06-15T13:45:30-07:00 -> -07:00
:时间分隔符2009-06-15T13:45:30 -> : (en-US)
/日期分隔符2009-06-15T13:45:30 -> / (en-US)
string文本字符串分隔符2009-06-15T13:45:30 ("arr:" h:m t) -> arr: 1:45 P; 2009-06-15T13:45:30 ('arr:' h:m t) -> arr: 1:45 P
%将下面的字符定义为自定义格式说明符2009-06-15T13:45:30 (%h) -> 1
\转义字符2009-06-15T13:45:30 (h \h) -> 1 h

自定义日期变量格式字符串

类别格式符说明示例
YYYY四位数年份2023
YY两位数年份23
Month完整的月份名称January
Mon月份缩写Jan
MM两位数月份01-31
Day完整的星期几名称Sunday
Dy星期几缩写Sun
DD两位数日期01
小时HH12进制两位数小时01-12
HH2424进制两位数小时00-23
分钟MI两位数分钟00-59
SS两位数的秒00-59
MS毫秒000-999
US微妙000000-999999
时区OF时区偏移量+02
TZ时区名称或偏移量UTC+2
上下午AM根据具体时间显示AM/PMAM
PM根据具体时间显示AM/PMPM
其他BC公元前
AD公元