C#  格式化
当在程序中执行System.Console.WriteLine方法调用时,如果用户未应用特殊的格式化,那么任何格式的字符串都会默认为字符串类型。而通过格式化可以将标准的.NET Framework数据类型转换为以具有一定意义的方式表示该类型的字符串。例如,用户可以将数值格式化为十六进制、科学记数法或者由用户指定的标点符号分隔成组的一系列数字;可以将日期和时间格式化为适合于特定的国家、地区或区域性;也可以将枚举常数格式化为它的数值或名称。
1.数字格式化
数字格式字符串用于格式化通用数值类型。数字格式字符串采用Axx的形式,其中A是称为格式说明符的字母型字符,xx是称为精度说明符的可选整数。精度说明符的范围从0到99,并且影响结果中的位数。如表4-5所示为数字格式化字符:
表4-5  数字格式化字符
格式字符
名称
说明
Cc
货币
数字转换为表示货币金额的字符串。转换由当前NumberFormatInfo对象的货币格式信息控制。精度说明符指示所需的小数位数。如果省略精度说明符,则使用当前NumberFormatInfo对象给定的默认货币精度
Dd
十进制数
只有整型才支持此格式。数字转换为十进制数字(0-9)的字符串,如果数字为负,则前面加负号。精度说明符指示结果字符串中所需的最少数字个数。如果需要,则用零填充该数字的左侧,以产生精度说明符给定的数字个数
Ee
科学记数法(指数)
数字转换为“-d.ddd…E+ddd”“-d.ddd…e+ddd”形式的字符串,其中每个“d”表示一个数字(0-9)。如果该数字为负,则该字符串以减号开头。小数点前总有一个数字。精度说明符指示小数点后所需的位数。如果省略精度说明符,则使用默认值,即小数点后六位数字。格式说明符的大小写指示在指数前加前缀“E”还是“e”。指数总是由正号或负号以及最少三位数字组成。如果需要,用零填充指数以满足最少三位数字的要求
Ff
定点
数字转换为“-ddd.ddd…”形式的字符串,其中每个“d”表示一个数字(0-9)。如果该数字为负,则该字符串以减号开头。精度说明符指示所需的小数位数。如果忽略精度说明符,则使用当前NumberFormatInfo对象给定的默认数值精度
Gg
常规
根据数字类型以及是否存在精度说明符,数字会转换为定点或科学记数法的最紧凑形式。如果精度说明符被省略或为零,则数字的类型决定默认精度。使用科学记数法时,如果格式说明符是“G”,结果的指数带前缀“E”;如果格式说明符是“g”,结果的指数带前缀“e”
Nn
数字
数字转换为“-d,ddd,ddd.ddd…”形式的字符串,其中“-”表示负数符号(如果需要),“d”表示数字(0-9),“,”表示数字组之间的千位分隔符,“.”表示小数点符号。实际的负数模式、数字组大小、千位分隔符以及十进制分隔符由当前NumberFormatInfo 对象指定
Pp
百分比
数字转换为由NumberFormatInfo.PercentNegativePatternNumberFormatInfo.PercentPositivePattern属性定义的、表示百分比的字符串,前者用于数字为负的情况,后者用于数字为正的情况。已转换的数字乘以100以表示为百分比
Rr
往返过程
只有SingleDouble类型支持此格式。往返过程说明符保证转换为字符串的数值再次被分析为相同的数值。使用此说明符格式化数值时,首先使用常规格式对其进行测试:Double使用15位精度,Single使用7位精度。如果此值被成功地分析回相同的数值,则使用常规格式说明符对其进行格式化。但是,如果此值未被成功地分析为相同数值,则它这样格式化:Double使用17位精度,Single使用9位精度
Xx
十六进制数
只有整型才支持此格式。数字转换为十六进制数字的字符串。格式说明符的大小写指示对大于9的十六进制数字使用大写字符还是小写字符。例如,使用“X”产生“ABCDEF”,使用“x”产生“abcdef”
2.日期与时间格式化
日期与时间(DateTime)格式字符串包含一个标准DateTime格式说明符字符,该字符表示自定义DateTime格式字符串。格式字符串最终定义由格式化操作产生的DateTime对象的文本表示形式。如表4-6所示为日期与时间格式化字符:
表4-6  日期与时间格式化字符
格式字符
名称
说明
d
短日期模式
表示由当前ShortDatePattern属性定义的自定义DateTime格式字符串。例如,用于固定区域性的自定义格式字符串为“MM/dd/yyyy”
D
长日期模式
表示由当前LongDatePattern属性定义的自定义DateTime格式字符串。例如,用于固定区域性的自定义格式字符串为“dddd,dd MMMM yyyy”
f
完整日期/时间模式(短时间)
表示长日期(D)和短时间(t)模式的组合,由空格分隔
F
完整日期/时间模式(长时间)
表示由当前FullDateTimePattern属性定义的自定义DateTime格式字符串。例如,用于固定区域性的自定义格式字符串为“dddd,dd MMMM yyyy HH:mm:ss”
g
常规日期/时间模式(短时间)
表示短日期(d)和短时间(t)模式的组合,由空格分隔
G
常规日期/时间模式(长时间)
表示短日期(d)和长时间(T)模式的组合,由空格分隔
Mm
月日模式
表示由当前MonthDayPattern属性定义的自定义DateTime格式字符串。例如,用于固定区域性的自定义格式字符串为“MMMM dd”
o
往返日期/时间模式
表示使用保留时区信息的模式的自定义DateTime格式字符串。该模式专用于往返DateTime格式(包括文本形式的Kind属性)。随后将ParseParseExact与正确的Kind属性值一起使用可以对格式化的字符串进行反向分析。自定义格式字符串为“yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK”字符串是什么类型的
Rr
RFC1123模式
表示由当前RFC1123Pattern属性定义的自定义DateTime 格式字符串。该模式是定义的标准,并且属性是只读的。因此,无论所使用的区域性或所提供的格式提供程序是什么,它总是相同的。定义格式字符串为“ddd,dd MMM yyyy HH':'mm':'ss 'GMT'”
s
可排序的日期/时间模式;符合ISO8601
表示由当前SortableDateTimePattern属性定义的自定义DateTime 格式字符串。此模式是定义的标准,并且属性是只读的。因此,无论所使用的区域性或所提供的格式提供程序是什么,它总是相同的。自定义格式字符串为“yyyy'-'MM'-'dd'T'HH':'mm':'ss”
t
短时间模式
表示由当前ShortTimePattern属性定义的自定义DateTime格式字符串。例如,用于固定区域性的自定义格式字符串为“HH:mm”
T
长时间模式
表示由当前LongTimePattern属性定义的自定义DateTime 格式字符串。例如,用于固定区域性的自定义格式字符串为“HH:mm:ss”
u
通用的可排序日期/时间模式
表示由当前UniversalSortableDateTimePattern属性定义的自定义DateTime格式字符串。此模式是定义的标准,并且属性是只读的。因此,无论所使用的区域性或所提供的格式提供程序是什么,它总是相同的。自定义格式字符串为“yyyy'-'MM'-'dd HH':'mm':'ss'Z'”
U
通用的可排序日期/时间模式
表示由当前FullDateTimePattern属性定义的自定义DateTime 格式字符串。此模式与完整日期/长时间(F)模式相同。但是,格式化将作用于等效于正在格式化的DateTime 对象的协调世界时(UTC)
Yy
年月模式
表示由当前YearMonthPattern属性定义的自定义DateTime格式字符串。例如,用于固定区域性的自定义格式字符串为“yyyy MMMM”

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。