c#字符串的格式化输出

        最近由于项目需要公司领导让我学习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();



  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值