其实高效字符串格式化技巧与最佳实践的问题并不复杂,但是又很多的朋友都不太了解,因此呢,今天小编就来为大家分享高效字符串格式化技巧与最佳实践的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
Console.WriteLine(string.Format("{0:N0}",14200666));
Console.WriteLine("架构师www.itsvse.com");
Console.ReadLine();
1、格式化货币(根据系统环境,中文系统默认格式化人民币,英文系统默认格式化美元)
string.Format("{0:C}",0.2) 结果为:0.20(英文操作系统结果:$0.20)
默认格式保留小数点后两位小数。如果需要保留一位或多位小数,可以指定位数。
string.Format("{0:C1}",23.15) 结果为:23.2(截取后会自动四舍五入)
格式化多个对象实例
string.Format("市场价:{0:C},优惠价{1:C}",23.15,19.82)
2.格式化小数(格式化为固定位数,位数不能小于格式化前,仅支持整数)
string.Format("{0:D3}",23) 结果是:023
string.Format("{0:D2}",1223) 结果为:1223,(精度说明符表示结果字符串中所需的最小位数。)
3. 用分号分隔数字并指定小数点后的位数。
string.Format("{0:N}", 14200) 结果为:14,200.00(默认为小数点后两位)
string.Format("{0:N3}", 14200.2458) 结果是:14,200.246(自动舍入)
4. 格式百分比
string.Format("{0:P}", 0.24583) 结果为:24.58%(默认保留百分比小数点后两位)
string.Format("{0:P1}", 0.24583) 结果是:24.6%(自动四舍五入)
5. 零占位符和数字占位符
string.Format("{0:0000.00}", 12394.039) 结果是:12394.04
string.Format("{0:0000.00}", 194.039) 结果是:0194.04
string.Format("{0:###.##}", 12394.039) 结果是:12394.04
string.Format("{0:####.#}", 194.039) 结果是:194
下面的解释很难理解。你可以通过实际应用测试来理解。
零占位符:
如果格式化值在格式字符串中有一个数字出现“0”,则该数字将被复制到结果字符串中。小数点前最左边“0”的位置和小数点后最右边“0”的位置决定了结果字符串中始终出现的数字范围。
“00”说明符使值四舍五入到小数点前最接近的数字,并且始终截断零数字。
数字占位符:
如果格式化值在格式字符串中有一个数字出现在“#”处,则该数字将被复制到结果字符串中。否则,结果字符串中的该位置不会存储任何值。
请注意,如果“0”不是有效数字,则此说明符永远不会显示“0”字符,即使“0”是字符串中唯一的数字。如果“0”是显示数字中的有效数字,则显示“0”字符。
“##”格式字符串导致值四舍五入到小数点前最接近的数字,其中零总是四舍五入。
PS:空格占位符
string.Format("{0,-50}", theObj);//格式为50个字符,原字符左对齐,不足则补空格
string.Format("{0,50}", theObj);//格式为50个字符,原字符右对齐,不足则补空格
6. 日期格式
string.Format("{0:d}",System.DateTime.Now) 结果是:2009-3-20(月份位置不是03)
string.Format("{0:D}",System.DateTime.Now) 结果是:2009 年3 月20 日
string.Format("{0:f}",System.DateTime.Now) 结果是: 2009 年3 月20 日15:37
string.Format("{0:F}",System.DateTime.Now) 结果是:2009年3月20日15:37:52
string.Format("{0:g}",System.DateTime.Now) 结果是:2009-3-20 15:38
string.Format("{0:G}",System.DateTime.Now) 结果是: 2009-3-20 15:39:27
string.Format("{0:m}",System.DateTime.Now) 结果是:3 月20 日
string.Format("{0:t}",System.DateTime.Now) 结果是:15:41
string.Format("{0:T}",System.DateTime.Now) 结果是:15:41:50
更详细的说明请参考下面微软的解释或者查看msdn。
微软MSDN对string.format方法的描述:
名称描述
String.Format (String, Object) 将指定String 中的格式项替换为指定Object 实例的值的文本等效项。
String.Format(String, Object[]) 将指定String 中的格式项替换为指定数组中相应Object 实例的值的文本等效项。
String.Format(IFormatProvider, String, Object[]) 将指定String 中的格式项替换为指定数组中相应Object 实例的值的文本等效项。指定的参数提供特定于区域性的格式信息。
String.Format(String, Object, Object) 将指定String 中的格式项替换为两个指定Object 实例的值的文本等效项。
String.Format(String, Object, Object, Object) 将指定String 中的格式项替换为三个指定Object 实例的值的文本等效项。
标准数字格式字符串
格式说明符名称说明
或c
货币
转换为表示货币金额的字符串的数字。转换由当前NumberFormatInfo 对象的货币格式信息控制。
精度说明符指示所需的小数位数。如果省略精度说明符,则使用当前NumberFormatInfo 对象给出的默认货币精度。
或d
小数
只有整数支持此格式。转换为十进制数字(0-9) 字符串的数字,如果数字为负数,则前面带有减号。
精度说明符指示结果字符串中所需的最小位数。如有必要,该数字将在左侧填充零,以产生精度说明符给出的位数。
或e
科学计数法(指数)
数字转换为“-d.ddd…E+ddd”或“-d.ddd…e+ddd”形式的字符串,其中每个“d”代表一个数字(0-9)。如果数字为负数,则字符串以减号开头。小数点前总是有一个数字。
精度说明符指示小数点后所需的位数。如果省略精度说明符,则使用小数点后六位的默认值。
格式说明符的大小写指示是否在指数前添加“E”或“e”。指数始终由正号或负号以及至少三位数字组成。如有必要,指数将用零填充以满足最小三位数要求。
或f
定点
数字转换为“-ddd.ddd…”形式的字符串,其中每个“d”代表一个数字(0-9)。如果数字为负数,则字符串以减号开头。
精度说明符指示所需的小数位数。如果省略精度说明符,则使用当前NumberFormatInfo 对象给出的默认数字精度。
或克
传统的
根据数字类型以及是否存在精度说明符,数字将转换为定点或科学记数法的最紧凑形式。如果精度说明符被省略或为零,则数字类型决定默认精度,如下表所示。
字节或SByte:3
Int16 或UInt16:5
Int32 或UInt32:10
Int64 或UInt64:19
单人:7人
双人间:15
十进制:29
如果数字以科学记数法表示,且指数大于-5且小于精度说明符,则使用定点表示法;否则,使用科学记数法。如果需要小数点并且忽略尾随零,则结果包括小数点。如果存在精度说明符并且结果的有效数字多于指定的精度,则通过舍入删除多余的尾随数字。
上述规则有一个例外:如果数字是Decimal 并且省略精度说明符。在这种情况下,始终使用定点表示并保留尾随零。
使用科学记数法时,如果格式说明符为“G”,则结果的指数以“E”为前缀;如果格式说明符为“g”,则结果的指数以“e”为前缀。
N 或n
数字
将数字转换为字符串,格式为“-d,ddd,ddd.ddd.”,其中“-”代表负数符号(如果需要),“d”代表数字(0-9) ,“,”代表数字组之间的数字千位分隔符,“。”代表小数点符号。实际的负数模式、数字组大小、千位分隔符和小数分隔符由当前NumberFormatInfo 对象指定。
精度说明符指示所需的小数位数。如果省略精度说明符,则使用当前NumberFormatInfo 对象给出的默认数字精度。
或p
百分比
该数字将转换为表示百分比的字符串,如负数或正数的NumberFormatInfo.PercentNegativePattern 或NumberFormatInfo.PercentPositivePattern 属性所定义。转换后的数字乘以100 以百分比形式表示。
精度说明符指示所需的小数位数。如果省略精度说明符,则使用当前NumberFormatInfo 对象给出的默认数字精度。
或r
往返过程
仅Single 和Double 类型支持此格式。往返说明符保证转换为字符串的值被再次解析为相同的值。使用此说明符格式化数值时,首先使用常规格式对其进行测试:具有15 位精度的Double,具有7 位精度的Single。如果该值成功解析回相同的数值,则使用常规格式说明符对其进行格式化。但是,如果该值未成功解析为相同的数值,则会使用17 位精度(对于Double)和9 位精度(对于Single)进行格式化。
尽管此处可以存在精度说明符,但它会被忽略。使用此说明符时,往返优先于精度。
x 或x
十六进制数
只有整数支持此格式。将数字转换为十六进制数字字符串。格式说明符的大小写指示对于大于9 的十六进制数字是否使用大写或小写字符。例如,使用“X”生成“ABCDEF”,使用“x”生成“abcdef”。
精度说明符指示结果字符串中所需的最小位数。如有必要,该数字将在左侧填充零,以产生精度说明符给出的位数。
任何其他单个字符
(未知说明符)
(未知说明符将引发运行时格式异常。)
自定义数字格式字符串
格式说明符名称说明
0
零占位符
如果格式化值在格式字符串中有一个数字出现“0”,则该数字将被复制到结果字符串中。小数点前最左边“0”的位置和小数点后最右边“0”的位置决定了结果字符串中始终出现的数字范围。
“00”说明符使值四舍五入到小数点前最接近的数字,并且始终截断零数字。例如,用“00”格式化34.5 将得到值35。
数字占位符
如果格式化值在格式字符串中有一个数字出现在“#”处,则该数字将被复制到结果字符串中。否则,结果字符串中的该位置不会存储任何值。
请注意,如果“0”不是有效数字,则此说明符永远不会显示“0”字符,即使“0”是字符串中唯一的数字。如果“0”是显示数字中的有效数字,则显示“0”字符。
“##”格式字符串导致值四舍五入到小数点前最接近的数字,其中零总是四舍五入。例如,使用“##”格式化34.5 将得到值35。
小数点
第一个“.”格式字符串中的字符决定格式化值中小数点分隔符的位置;任何其他“.”字符被忽略。
用作小数分隔符的实际字符由控制格式设置的NumberFormatInfo 的NumberDecimalSeparator 属性确定。
,
千位分隔符和数字缩放
“,”字符可用作千位分隔符说明符和数值范围转换说明符。
千位分隔符说明符:如果在两个数字占位符(0 或#)之间指定一个或多个“,”字符以格式化数字的整数位,则输出的整数部分中的每个数字将在组之间插入组分隔符。
当前NumberFormatInfo 对象的NumberGroupSeparator 和NumberGroupSizes 属性确定用作数字组分隔符的字符以及每个数字组的大小。例如,如果使用字符串“#,#”和固定区域性设置数字1000 的格式,则输出为“1,000”。
数字缩放说明符:如果紧邻显式或隐式小数点左侧指定一个或多个“,”字符,则每次出现数字缩放说明符都会将要格式化的数字除以1000。例如,如果数字1000000000使用字符串“0,”格式化,输出为“100”。
您可以在同一格式字符串中使用千位分隔符说明符和数字比例转换说明符。例如,如果使用字符串“#,0,”和固定区域性格式化数字10000000000,则输出为“1,000”。
%
百分比占位符
格式字符串中存在“%”字符将导致数字在格式化之前乘以100。在格式字符串中数字本身显示为“%”的位置插入适当的符号。使用的百分比字符由当前的NumberFormatInfo 类确定。
E0
E+0
E-0
e0
e+0
e-0
科学计数法
如果任何字符串“E”、“E+”、“E-”、“e”、“e+”或“e-”出现在格式字符串中,并且紧随其后至少有一个“0”字符,则数字采用科学记数法格式,在数字和指数之间插入“E”或“e”。科学计数法指示符后面的“0”字符的数量决定了指数输出的最小位数。 “E+”和“e+”格式指示符号字符(正号或负号)应始终位于指数之前。 “E”、“E-”、“e”或“e-”格式表示符号字符仅放置在负指数之前。
转义字符
在C# 和C++ 中,反斜杠字符会导致格式字符串中的下一个字符被解释为转义序列。它与传统的格式化序列一起使用,例如“n”(换行符)。
在某些语言中,当用作文本时,转义字符本身必须位于转义字符之后。否则,编译器将该字符解释为转义字符。使用字符串“\”来显示“”。
请注意,Visual Basic 不支持此转义字符,但ControlChars 提供相同的功能。
"ABC"
"ABC"
细绳
用单引号或双引号括起来的字符将被复制到结果字符串中,并且不会影响格式设置。
;
零件分隔符
这”;”字符用于分隔格式字符串的正数、负数和零部分。
其他
所有其他字符
所有其他字符都会复制到结果字符串中,并且不会影响格式设置。
标准日期时间格式字符串
格式说明符名称说明
d
短日期模式
表示由当前ShortDatePattern 属性定义的自定义DateTime 格式字符串。
例如,固定区域性的自定义格式字符串为“MM/dd/yyyy”。
D
长日期模式
表示由当前LongDatePattern 属性定义的自定义DateTime 格式字符串。
例如,固定区域性的自定义格式字符串为“dddd, dd MMMM yyyy”。
f
全日期/时间模式(短时间)
表示长日期(D) 和短时间(t) 模式的组合,并用空格分隔。
F
完整日期/时间模式(长时间)
表示由当前FullDateTimePattern 属性定义的自定义日期时间格式字符串。
例如,固定区域性的自定义格式字符串为“dddd, dd MMMM yyyy HH:mm:ss”。
克
常规日期/时间模式(短时间)
表示短日期(d) 和短时间(t) 模式的组合,并用空格分隔。
G
常规日期/时间模式(长时间)
表示短日期(d) 和长日期(T) 模式的组合,并用空格分隔。
米或米
月日模式
表示由当前MonthDayPattern 属性定义的自定义DateTime 格式字符串。
例如,固定区域性的自定义格式字符串是“MMMM dd”。
哦
往返日期/时间模式
表示使用保留时区信息的模式的自定义日期时间格式字符串。此模式特定于往返DateTime 格式(包括Kind 属性的文本形式)。然后可以使用Parse 或ParseExact 以及正确的Kind 属性值对格式化字符串进行反向解析。
自定义格式字符串为“yyyy"-"MM"-"dd"T"HH":"mm":"ss.fffffffK”。
用于此说明符的模式是已定义的标准。因此,无论使用的区域性或提供的格式提供程序如何,它始终是相同的。
或r
RFC1123模式
表示由当前RFC1123Pattern 属性定义的自定义日期时间格式字符串。架构是定义的标准,属性是只读的。因此,无论使用的区域性或提供的格式提供程序如何,它始终是相同的。
将格式字符串定义为“ddd, dd MMM yyyy HH":"mm":"ss "GMT"”。
格式化不会修改正在格式化的DateTime 对象的值。因此,应用程序必须在使用此格式说明符之前将该值转换为协调世界时(UTC)。
s
可排序的日期/时间模式;符合ISO 8601 标准
表示由当前SortableDateTimePattern 属性定义的自定义DateTime 格式字符串。此架构是已定义的标准,并且属性是只读的。因此,无论使用的区域性或提供的格式提供程序如何,它始终是相同的。
自定义格式字符串为“yyyy"-"MM"-"dd"T"HH":"mm":"ss”。
t
短时间模式
表示由当前ShortTimePattern 属性定义的自定义DateTime 格式字符串。
例如,固定区域性的自定义格式字符串为“HH:mm”。
时间
长模式
表示由当前LongTimePattern 属性定义的自定义日期时间格式字符串。
例如,固定区域性的自定义格式字符串为“HH:mm:ss”。
你
通用可排序日期/时间模式
表示由当前UniversalSortableDateTimePattern 属性定义的自定义日期时间格式字符串。此架构是已定义的标准,并且属性是只读的。因此,无论使用的区域性或提供的格式提供程序如何,它始终是相同的。
自定义格式字符串为“yyyy"-"MM"-"dd HH":"mm":"ss"Z"”。
设置日期和时间格式时不执行时区转换。因此,应用程序必须在使用此格式说明符之前将本地日期和时间转换为协调世界时(UTC)。
U
通用可排序日期/时间模式
表示由当前FullDateTimePattern 属性定义的自定义日期时间格式字符串。
此模式与完整日期/长时间(F) 模式相同。但是,格式化将作用于正在格式化的DateTime 对象的协调世界时(UTC) 等效值。
是或y
年月模式
表示由当前YearMonthPattern 属性定义的自定义DateTime 格式字符串。
例如,固定区域性的自定义格式字符串是“yyyy MMMM”。
任何其他单个字符
(未知说明符)
未知的说明符将引发运行时格式异常。
自定义日期时间格式字符串
格式说明符说明
d
将月份中的日期表示为1 到31 之间的数字。单位数日期的格式不带前导零。有关使用单个格式说明符的详细信息,请参阅使用单个自定义格式说明符。
DD
将月份中的日期表示为01 到31 之间的数字。单位数日期的格式带有前导零。
滴滴
将星期几的缩写名称表示为当前System.Globalization.DateTimeFormatInfo.AbbreviatedDayNames 属性中定义的名称。
dddd(加上任意数量的“d”说明符)
表示星期几的完整名称,如当前System.Globalization.DateTimeFormatInfo.DayNames 属性中定义的名称。
f
代表第二部分的最高有效数字。
请注意,如果单独使用“f”格式说明符,而没有其他格式说明符,则将其视为“f”标准日期时间格式说明符(完整日期/时间模式)。有关使用单个格式说明符的详细信息,请参阅使用单个自定义格式说明符。
当将此格式说明符与ParseExact 或TryParseExact 方法一起使用时,使用的“f”格式说明符的数量指示要分析的第二部分的最高有效数字的数量。
FF
代表第二部分的两个最高有效数字。
FF
代表第二部分的三个最高有效数字。
噗噗
代表第二部分的四个最高有效数字。
噗噗
代表第二部分的五个最高有效数字。
噗噗噗
代表第二部分的六位最高有效数字。
噗噗噗
代表第二部分的七个最高有效数字。
F
代表第二部分的最高有效数字。如果该位为零,则不显示任何信息。有关使用单个格式说明符的详细信息,请参阅使用单个自定义格式说明符。
当将此格式说明符与ParseExact 或TryParseExact 方法一起使用时,使用的“F”格式说明符的数量指示要分析的秒部分的最高有效数字的最大数量。
FF
代表第二部分的两个最高有效数字。不显示尾随零(或两个零位)。
FFF
代表第二部分的三个最高有效数字。不显示尾随零(或三个零数字)。
FFFF
代表第二部分的四个最高有效数字。不显示尾随零(或四个零数字)。
FFFFFF
代表第二部分的五个最高有效数字。不显示尾随零(或五个零数字)。
FFFFFF
代表第二部分的六位最高有效数字。不显示尾随零(或六个零数字)。
FFFFFFFF
代表第二部分的七个最高有效数字。不显示尾随零(或七个零数字)。
g 或gg(加上任意数量的“g”说明符)
表示一个时期或时代(例如A.D.)。如果正在格式化的日期没有关联的周期或纪元字符串,则忽略此说明符。有关使用单个格式说明符的详细信息,请参阅使用单个自定义格式说明符。
小时
将小时表示为1 到12 之间的数字,即以12 小时制表示小时,从午夜或中午开始计算整个小时。因此,午夜之后的特定小时数与中午之后的相同小时数无法区分。小时数不进行四舍五入,单位数小时数的格式不带前导零。例如,给定时间5:43,此格式说明符显示“5”。有关使用单个格式说明符的更多信息,请参阅使用单个自定义格式说明符。
hh, hh(加上任意数量的“h”说明符)
将小时表示为从01 到12 的数字,即使用12 小时制,从午夜或中午开始计算整个小时。因此,午夜之后的特定小时数与中午之后的相同小时数无法区分。小时数不进行四舍五入,单位数小时数的格式采用前导零。例如,给定时间5:43,此格式说明符显示“05”。
H
将小时表示为0 到23 之间的数字,即使用从零开始计算小时的24 小时制。单位数字小时格式,不带前导零。
HH、HH(加上任意数量的“H”说明符)
将小时表示为00 到23 之间的数字,即使用从零开始计算小时的24 小时制。采用前导零格式化的单位数小时。
K
表示DateTime.Kind 属性的不同值,即“Local”、“Utc”或“Unspecified”。此说明符将Kind 值作为文本循环并保留时区。如果Kind 值为“Local”,则此说明符相当于“zzz”说明符,它显示本地时间偏移量,例如“-07:00”。对于“Utc”类型值,此说明符显示字符“Z”来表示
示 UTC 日期。对于“Unspecified”类型值,该说明符等效于“”(无任何内容)。 m 将分钟表示为从 0 至 59 的数字。分钟表示自前一小时后经过的整分钟数。一位数字的分钟数设置为不带前导零的格式。有关使用单个格式说明符的更多信息,请参见使用单个自定义格式说明符。 mm, mm(另加任意数量的“m”说明符) 将分钟表示为从 00 至 59 的数字。分钟表示自前一小时后经过的整分钟数。一位数字的分钟数设置为带前导零的格式。 M 将月份表示为从 1 至 12 的数字。一位数字的月份设置为不带前导零的格式。有关使用单个格式说明符的更多信息,请参见使用单个自定义格式说明符。 MM 将月份表示为从 01 至 12 的数字。一位数字的月份设置为带前导零的格式。 MMM 将月份的缩写名称表示为当前 System.Globalization.DateTimeFormatInfo.AbbreviatedMonthNames 属性中定义的名称。 MMMM 将月份的全名表示为当前 System.Globalization.DateTimeFormatInfo.MonthNames 属性中定义的名称。 s 将秒表示为从 0 至 59 的数字。秒表示自前一分钟后经过的整秒数。一位数字的秒数设置为不带前导零的格式。有关使用单个格式说明符的更多信息,请参见使用单个自定义格式说明符。 ss, ss(另加任意数量的“s”说明符) 将秒表示为从 00 至 59 的数字。秒表示自前一分钟后经过的整秒数。一位数字的秒数设置为带前导零的格式。 t 表示当前 System.Globalization.DateTimeFormatInfo.AMDesignator 或 System.Globalization.DateTimeFormatInfo.PMDesignator 属性中定义的 A.M./P.M. 指示符的第一个字符。如果正在格式化的时间中的小时数小于 12,则使用 A.M. 指示符;否则使用 P.M. 指示符。有关使用单个格式说明符的更多信息,请参见使用单个自定义格式说明符。 tt, tt(另加任意数量的“t”说明符) 将 A.M./P.M. 指示符表示为当前 System.Globalization.DateTimeFormatInfo.AMDesignator 或 System.Globalization.DateTimeFormatInfo.PMDesignator 属性中定义的内容。如果正在格式化的时间中的小时数小于 12,则使用 A.M. 指示符;否则使用 P.M. 指示符。 y 将年份表示为最多两位数字。如果年份多于两位数,则结果中仅显示两位低位数。如果年份少于两位数,则该数字设置为不带前导零的格式。有关使用单个格式说明符的更多信息,请参见使用单个自定义格式说明符。 yy 将年份表示为两位数字。如果年份多于两位数,则结果中仅显示两位低位数。如果年份少于两位数,则用前导零填充该数字使之达到两位数。 yyy 将年份表示为三位数字。如果年份多于三位数,则结果中仅显示三位低位数。如果年份少于三位数,则用前导零填充该数字使之达到三位数。 请注意,对于年份可以为五位数的泰国佛历,此格式说明符将显示全部五位数。 yyyy 将年份表示为四位数字。如果年份多于四位数,则结果中仅显示四位低位数。如果年份少于四位数,则用前导零填充该数字使之达到四位数。 请注意,对于年份可以为五位数的泰国佛历,此格式说明符将呈现全部五位数。 yyyyy(另加任意数量的“y”说明符) 将年份表示为五位数字。如果年份多于五位数,则结果中仅显示五位低位数。如果年份少于五位数,则用前导零填充该数字使之达到五位数。 如果存在额外的“y”说明符,则用所需个数的前导零填充该数字使之达到“y”说明符的数目。 z 表示系统时间距格林威治时间 (GMT) 以小时为单位测量的带符号时区偏移量。例如,位于太平洋标准时区中的计算机的偏移量为“-8”。 偏移量始终显示为带有前导符号。加号 (+) 指示小时数早于 GMT,减号 (-) 指示小时数迟于 GMT。偏移量范围为 –12 至 +13。一位数字的偏移量设置为不带前导零的格式。偏移量受夏时制影响。有关使用单个格式说明符的更多信息,请参见使用单个自定义格式说明符。 zz 表示系统时间距格林威治时间 (GMT) 以小时为单位测量的带符号时区偏移量。例如,位于太平洋标准时区中的计算机的偏移量为“-08”。 偏移量始终显示为带有前导符号。加号 (+) 指示小时数早于 GMT,减号 (-) 指示小时数迟于 GMT。偏移量范围为 –12 至 +13。一位数字的偏移量设置为带前导零的格式。偏移量受夏时制影响。 zzz, zzz(另加任意数量的“z”说明符) 表示系统时间距格林威治时间 (GMT) 以小时和分钟为单位测量的带符号时区偏移量。例如,位于太平洋标准时区中的计算机的偏移量为“-08:00”。 偏移量始终显示为带有前导符号。加号 (+) 指示小时数早于 GMT,减号 (-) 指示小时数迟于 GMT。偏移量范围为 –12 至 +13。一位数字的偏移量设置为带前导零的格式。偏移量受夏时制影响。 : 当前 System.Globalization.DateTimeFormatInfo.TimeSeparator 属性中定义的时间分隔符,用于区分小时、分钟和秒。 / 当前 System.Globalization.DateTimeFormatInfo.DateSeparator 属性中定义的日期分隔符,用于区分年、月和日。 " 带引号的字符串(引号)。显示两个引号 (") 之间的任意字符串的文本值。在每个引号前使用转义符 ()。 " 带引号的字符串(撇号)。显示两个撇号 (") 字符之间的任意字符串的文本值。 %c 当自定义 DateTime 格式字符串只包含自定义格式说明符“c”时,表示与该自定义格式说明符关联的结果。也就是说,若要单独使用自定义格式说明符“d”、“f”、“F”、 “h”、“m”、“s”、“t”、“y”、“z”、“H”或“M”,请指定“%d”、“%f”、“%F”、“%h”、“%m”、“%s”、“%t”、 “%y”、“%z”、“%H”或“%M”。有关使用单个格式说明符的更多信息,请参见使用单个自定义格式说明符。 c 转义符。当字符“c”前带有转义符 () 时,将该字符显示为文本。若要将反斜杠字符本身插入结果字符串,请使用两个转义符(“\”)。 任何其他字符 所有其他字符被复制到结果字符串中,而且不影响格式化。 枚举格式字符串 格式字符串 结果 G 或 g 如有可能,将枚举项显示为字符串值,否则显示当前实例的整数值。如果枚举定义中设置了 Flags 属性,则串联每个有效项的字符串值并将各值用逗号分开。如果未设置 Flags 属性,则将无效值显示为数字项。 F 或 f 如有可能,将枚举项显示为字符串值。如果值可以完全显示为枚举项的总和(即使未提供 Flags 属性),则串联每个有效项的字符串值并将各值用逗号分开。如果值不能完全由枚举项确定,则将值格式化为整数值。 D 或 d 以尽可能短的表示形式将枚举项显示为整数值。 X 或 x【高效字符串格式化技巧与最佳实践】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
我刚学习编程,还在弄String格式化这块呢!
有5位网友表示赞同!
String格式化确实很有用,可以写的代码更直观。
有19位网友表示赞同!
以前都乱写字符串,现在才知道原来有这么优雅的方式!
有10位网友表示赞同!
有没有一些常用的String格式化技巧,可以分享下?
有7位网友表示赞同!
不同的编程语言里的String格式化方法好像不一样吧?
有11位网友表示赞同!
学了String格式化以后,代码变得整洁多了。
有14位网友表示赞同!
看文档总是感觉抽象,能否用例子来讲解一下String格式化?
有7位网友表示赞同!
这方面的学习资料比较少吗?
有9位网友表示赞同!
做数据处理的时候经常用到String格式化吧?
有17位网友表示赞同!
学习编程果然要一步一个脚印,先把String格式化这个基础掌握。
有6位网友表示赞同!
这种格式化的方式效率高吗?
有12位网友表示赞同!
好像有些框架自带了String格式化的功能?
有5位网友表示赞同!
以后字符串输出可以直接用格式化方法,真是太方便了!
有6位网友表示赞同!
String格式化学习一下,将来写代码会更得心应手!
有17位网友表示赞同!
感觉学习字符串处理是一个持续深入的过程呢!
有12位网友表示赞同!
这方面还有哪些需要注意的呢?
有12位网友表示赞同!
学习新技术总是充满挑战但也十分有趣!
有14位网友表示赞同!
String格式化这个知识点还是蛮重要的,要好好掌握。
有14位网友表示赞同!
希望能找到更便捷的 String 格式化工具使用!
有20位网友表示赞同!
分享一下用到的工具和框架吧!
有6位网友表示赞同!