您的位置:首页 > 编程语言 > C#

c#字符串的格式化输出

2016-04-28 13:27 591 查看
        最近由于项目需要公司领导让我学习C#,进行上位机开发,我个人也对这个语言挺感兴趣的,原先使用其他人的上位机时就觉得各个界面的功能模块挺有意思,竟然用AD采样数据就能描出波形,给我的感觉就是amazing。现在将我整理的格式符发出来分享下,

格式输出的一般形式为

{inex [,alignment] [:formatstring]},[ ]中内容为可选项。

其中index表示参数索引,从0开始编号,即输出表达式中第一个输出参数用0,第二个用1,以此类推。

alignment表示对齐方式,用逗号“,“作为标记。正数则右对齐,负数则左对齐。若超过参数长度,则用空格补齐。如果未指定,则默认0。

formatstring格式符,用冒号“:”作为标记。

网上搜集到的格式符资料如下

格式符                            说明

C或c                               货币

D或d                              十进制整数

E或e                               科学计数法

F或f                                小数点后固定位数

G                                     默认输出

N或n                              用,分隔数字

P或p                              百分比

R或r                               round-trip(仅用于浮点数,保证浮点数转化为字符串后能再被转化为相同的数)

X或x                               十六进制整数

以下格式符是用于设置日期时间的输出格式,输出的参数是属于DataTime类型。

标准Format格式

格式符                           说明                                                        示例

d                                   shortdate短日期                                 2016/4/28

D                                   longdate长日期                                  2016年4月28日

t                                    shorttime短时间                                 14:17 

T                                   longtime长时间                                  14:17:20

f                                    长日期和短时间                                   2016年4月28日 14:17

F                                   长日期和长时间                                   2016年4月28日 14:17:20

g                                   短日期和短时间                                   2016/4/28 14:17

G                                  短日期和长时间(默认格式)            2016/4/28 14:17:20

M                                  月和日                                                   4月28日

R                                  RFC1123                                             Thu,28 Apr 2016 14:17:20 GMT

s                                   sortable                                               2016-04-28T14:17:20

u                                   universal sortable                             2016-04-28   14:17:20Z

U                                  格林威治时间                                      2016年4月28日 6:17:20

Y                                  年和月                                                   2016年4月

自定义格式

格式符                        说明                                                          示例

d                              一位数或两位数的天数                              8      18     

dd                            两位数天数,不足两位左侧补0               08    18

ddd                         周几                                                             周二      周三                 

dddd                       星期几                                                         星期二   星期三

M                             一位数或两位数月份                                 1        12                                        

MM                          两位数月份,不足两位左侧补0               01     12

MMM                      中文月份缩写                                            

MMMM                   中文月份全称                                            一月    十二月(实际测试上述2个格式符输出格式相同)           

y                             一位数或两位数的年份                           

yy                            两位数的年份

yyyy                        四位数年份

gg                          时期或纪元

h                            12小时制的小时。没有前导零

hh                          12小时制的小时。有前导零

H                            24小时制的小时。没有前导零

HH                         24小时制的小时。有前导零

m                           一位或两位数的分钟

mm                        两位数的分钟,不足两位左侧补0

s                            一位或两位数的秒

ss                          两位数的秒,不足两位左侧补0

f                             秒的一位小数                                                  3(54.369s)

ff                            秒的两位小数                                                  36(54.369s)

fff                           秒的三位小数                                                  369(54.369s)

...

fffffff                     秒的七位小数

t                            AM/PM的首字母

tt                           AM/PM

z                           时区偏移量,没有前导零

zz                          时区偏移量,有前导零

zzz                        完整时区偏移量,有前导零

日期格式输出时,若格式符仅为一个字符,默认为标准格式符,如{0:d}则按照标准日期格式符输出,{0: d}则按照自定义格式符输出。

int k = 123456;
double j = 123.45678956;
DateTime time = new DateTime(2001, 12, 7, 11, 13, 20);
DateTime dt = DateTime.Now;

Console.WriteLine("C {0:C}", k);//按照金额形式输出,默认2位小数,格式符后数字设置小数位数
Console.WriteLine("C {0:C0}", k);
Console.WriteLine("C {0:C1}", k);
Console.WriteLine("C {0:C2}", k);
Console.WriteLine("C {0:C3}", k);

Console.WriteLine("D {0:D}", k);//十进制整数输出,后缀设置整数位数,整数位数不足则左边补0,数据位数大于设定位数则按原数据输出
Console.WriteLine("D {0:D1}", k);
Console.WriteLine("D {0:D2}", k);
Console.WriteLine("D {0:D3}", k);
Console.WriteLine("D {0:D7}", k);

Console.WriteLine("E {0:e}", k);//科学计数法,默认7位有效数字,后缀设置小数点后有效数字位数
Console.WriteLine("E {0:e0}", k);
Console.WriteLine("E {0:e1}", k);
Console.WriteLine("E {0:E2}", k);
Console.WriteLine("E {0:E3}", k);
Console.WriteLine("E {0:E4}", k);
Console.WriteLine("E {0:E5}", k);
Console.WriteLine("E {0:E6}", k);
Console.WriteLine("E {0:E7}", k);
Console.WriteLine("E {0:E8}", k);

Console.WriteLine("F {0:F}", j);//小数点后位数设置
Console.WriteLine("F {0:F0}", j);
Console.WriteLine("F {0:F1}", j);
Console.WriteLine("F {0:F2}", j);
Console.WriteLine("F {0:F3}", j);

Console.WriteLine("G {0:G}", k);//默认输出格式

Console.WriteLine("N {0:N}", k);//用‘,’分割数据,默认2位小数
Console.WriteLine("N {0:N0}", k);
Console.WriteLine("N {0:N1}", k);
Console.WriteLine("N {0:N2}", k);

Console.WriteLine("P {0:P}", k);//百分比输出,默认2位小数,后缀设置小数点后位数
Console.WriteLine("P {0:P0}", k);
Console.WriteLine("P {0:P1}", k);
Console.WriteLine("P {0:P2}", k);

Console.WriteLine("R {0:R}", j);//只用于浮点数,保证一个数字被转化成字符串以后可以再被转回成同样的数字
Console.WriteLine("X {0:X}", k);//十六进制输出

Console.WriteLine("d {0:d}",dt);//2016/4/29
Console.WriteLine("D {0:D}", dt);//2016年4月29日
Console.WriteLine("t {0:t}", dt);//9:45
Console.WriteLine("T {0:T}", dt);//9:45:53
Console.WriteLine("f {0:f}", dt);//2016年4月29日 9:45
Console.WriteLine("F {0:F}", dt);//2016年4月29日 9:45:53
Console.WriteLine("g {0:g}", dt);//2016/4/29 9:45
Console.WriteLine("G {0:G}", dt);//2016/4/29 9:45:53
Console.WriteLine("M {0:M}", dt);//4月29日
Console.WriteLine("R {0:R}", dt);//Fri, 29 Apr 2016 09:45:53 GMT
Console.WriteLine("s {0:s}", dt);//2016-04-29T09:45:53
Console.WriteLine("u {0:u}", dt);//2016-04-29 09:45:53Z
Console.WriteLine("U {0:U}", dt);//2016年4月29日 1:45:53
Console.WriteLine("Y {0:Y}", dt);//2016年4月

Console.WriteLine("d    {0: d}", dt);// 29
Console.WriteLine("dd   {0:dd}", dt);//29
Console.WriteLine("ddd  {0:ddd}", dt);//周五
Console.WriteLine("dddd {0:dddd}", dt);//星期五
Console.WriteLine("M    {0: M}", dt);//4
Console.WriteLine("MM   {0:MM}", dt);//04
Console.WriteLine("MMM  {0:MMM}", dt);//四月
Console.WriteLine("MMMM {0:MMMM}", dt);//四月
Console.WriteLine("y    {0: y}", time);// 1
Console.WriteLine("yy   {0:yy}", time);//01
Console.WriteLine("yyyy {0:yyyy}", time);//2001
Console.WriteLine("gg   {0:gg}", dt);//公元
Console.WriteLine("h    {0: h}", dt);// 9
Console.WriteLine("hh   {0:hh}", dt);//09
Console.WriteLine("H    {0: H}", dt);// 9
Console.WriteLine("HH   {0:HH}", dt);//09
Console.WriteLine("s    {0: s}", dt);// 53
Console.WriteLine("ss   {0:ss}", dt);//53
Console.WriteLine("f    {0:s.f}", dt);//4.9
Console.WriteLine("ff   {0:s.ff}", dt);//4.93
Console.WriteLine("fff  {0:s.fff}", dt);//4.931
Console.WriteLine("fffffff  {0:s.fffffff}", dt);//13.8595367
Console.WriteLine("t    {0: t}", dt);//上
Console.WriteLine("tt   {0:tt}", dt);//上午
Console.WriteLine("z    {0: z}", dt);// +8
Console.WriteLine("zz   {0:zz}", dt);//+08
Console.WriteLine("zzz   {0:zzz}", dt);//+08:00
Console.WriteLine("{0}", dt);//2016/4/29 9:45:53  默认格式{0:G}
Console.ReadLine();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息