Formatting Types 标准及自定义数字格式字符串

本文详细介绍了在编程中如何使用格式字符串进行数字与时间的标准化格式化,包括货币、指数、定点、百分比、十六进制、占位符、日期时间等格式化的具体应用与实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

附上微软官方的链接: 标准数字格式字符串
#region 

            //***************************** 

            //***    Formatting Types   *** 

            //***************************** 



            #region 

            //------------------------------------ 

            //------标准及自定义数字格式字符串---- 

            //------------------------------------ 

            Console.WriteLine("------------------------标准及自定义数字格式字符串---------------------------"); 



            Double d1 = 12345.6789; 

            Double d2 = 0.0123; 

            Double d3 = 0.23; 

            Double d4 = 1.55; 

            Int32 i1 = 31; 

            Int32 i2 = -7; 

            Int32 i3 = 1234567890; 





            //C or c 货币表示 

            //d1 = 12345.6789; 

            Console.WriteLine("----C or c 货币表示----"); 

            Console.WriteLine(d1.ToString("C", CultureInfo.InvariantCulture));  //¤12,345.68 

            Console.WriteLine(d1.ToString("C3"));                              //$12,345.679 

            Console.WriteLine(d1.ToString("C2", new CultureInfo("zh-CN")));     //¥12,345.68 



            //D or d 十进制数 范围:整数 

            //i1 = 31;i2 = -7; 

            Console.WriteLine("----D or d 十进制数 范围:整数----"); 

            Console.WriteLine(i1.ToString("D"));  //31 

            Console.WriteLine(i1.ToString("D4")); //0031 

            Console.WriteLine(i2.ToString("D4")); //-0007 



            //E or e 指数 默认保留6位小数 E后数字即为要保留的小数位数 

            //d1 = 12345.6789;d2 = 0.0123; 

            Console.WriteLine("----E or e 指数----"); 

            Console.WriteLine(d1.ToString("E"));                             //1.234568E+004 

            Console.WriteLine(d1.ToString("E2"));                            //1.23E+004 

            Console.WriteLine(d1.ToString("E5"));                            //1.23457E+004 

            Console.WriteLine(d2.ToString("E4"));                            //1.2300E-002 

            Console.WriteLine(d2.ToString("E4", new CultureInfo("fr-FR")));   //1,2300E-002             



            //F or f 定点  默认2位小数  F后数字即为要保留的小数的位数 

            //i1 = 31; d1 = 12345.6789; 

            Console.WriteLine("----F or f 定点----"); 

            Console.WriteLine(i1.ToString("F"));  //31.00 

            Console.WriteLine(d1.ToString("F"));  //12345.68 

            Console.WriteLine(d1.ToString("F1")); //12345.7 

            Console.WriteLine(d1.ToString("F6")); //12345.678900 



            //N or n  将数字转换为"-d,ddd,ddd.ddd…"形式的字符串 

            //d1 = 12345.6789; 

            Console.WriteLine("----N or n  将数字转换为-d,ddd,ddd.ddd…形式的字符串"); 

            Console.WriteLine(d1.ToString("N"));                             //12,345.68 

            Console.WriteLine(d1.ToString("N", new CultureInfo("sv-SE")));    //12?345,68 



            //P or p 百分比格式 

            //d3 = 0.23; 

            Console.WriteLine("----P or p 百分比格式----"); 

            Console.WriteLine(d3.ToString("P"));                          //23.00 % 

            Console.WriteLine(d3.ToString("P", new CultureInfo("fr-FR"))); //23,00 %            



            //X or x 十六进制 

            //i1 = 31 

            Console.WriteLine("----X or x 十六进制----"); 

            Console.WriteLine(i1.ToString("X"));   //1F 

            Console.WriteLine(i1.ToString("X4"));  //001F             



            //0 零占位符 

            //i1=31;d4 = 1.55; 

            Console.WriteLine("----0 零占位符----"); 

            Console.WriteLine(i1.ToString("0000"));   //0031 

            Console.WriteLine(d4.ToString("00"));     //02 

            Console.WriteLine(d4.ToString("00.0"));   //01.6 

            Console.WriteLine(d4.ToString("00.0000"));//01.5500 



            //# 数字占位符 如果要格式化的值在格式字符串中#对应的位置有一个数字,则此数字被复制到结果字符串中。否则,结果字符串中的此位置不存储任何值。 

            //"##"格式字符串使得值被舍入到小数点前最近的数字,其中零总被舍去。例如,用"##"格式化 11.5 将得到值 12 

            //d4 = 1.55;i3=1234567890 

            Console.WriteLine("----# 数字占位符----"); 

            Console.WriteLine(d4.ToString("##.###"));        //1.55 

            Console.WriteLine(d4.ToString("##.#"));          //1.6 

            Console.WriteLine(d4.ToString("##"));            //2 

            Console.WriteLine(i3.ToString("##"));            //1234567890 

            Console.WriteLine(i3.ToString("#############")); //1234567890 

            Console.WriteLine(i3.ToString("###-##-#"));      //1234567-89-0  从右边开始占位 

            Console.WriteLine(i3.ToString("(###)####-####"));//(12)3456-7890 



            //. 在结果字符串中插入本地化的小数分隔符 

            //d4 = 1.55;d2 = 0.0123;i3 = 1234567890; 

            Console.WriteLine("----. 在结果字符串中插入本地化的小数分隔符----"); 

            Console.WriteLine(d4.ToString("0.000"));     //1.550 

            Console.WriteLine(d4.ToString(".0"));        //1.6 

            Console.WriteLine(d2.ToString("0.###%"));    //1.23% 

            Console.WriteLine(d2.ToString("0.#%"));      //1.2% 

            Console.WriteLine(i3.ToString("0.###E+0"));  //1.235E+9 

            Console.WriteLine(i3.ToString("0.###E0"));   //1.235E9 



            //, 可同时作为组分隔符 

            //i3 = 1234567890; 

            Console.WriteLine("----, 可同时作为组分隔符----"); 

            Console.WriteLine(i3.ToString("#,#"));       //1,234,567,890 

            Console.WriteLine(i3.ToString("####,####")); //1,234,567,890 



            //% 数字在格式化之前乘以 100 

            //d2 = 0.0123 

            Console.WriteLine("----% 数字在格式化之前乘以 100----"); 

            Console.WriteLine(d2.ToString("0.#####%")); //1.23% 

            Console.WriteLine(d2.ToString("0.#%")); //1.2% 

            Console.WriteLine(d2.ToString("0.0%")); //1.2% 

            Console.WriteLine(d2.ToString("0%")); //1% 



            //E 科学计数法 如果"E"、"E+"、"E-"、"e"、"e+"或"e-"中的任何一个字符串出现在格式字符串中,而且后面紧跟至少一个零,则数字用科学记数法来格式化 

            //i3 = 1234567890; 

            Console.WriteLine("---科学计数法 ----"); 

            Console.WriteLine(i3.ToString("0.00E000"));    //1.23E009 

            Console.WriteLine(i3.ToString("0.#E+00"));     //1.2E+09 

            Console.WriteLine(i3.ToString("0.#E-00"));     //1.2E09 



            #endregion 



            #region 

            //------------------------------------ 

            //------标准及自定义时间格式字符串---- 

            //------------------------------------ 

            Console.WriteLine("------------------------标准及自定义时间格式字符串---------------------------"); 

            DateTime date = new DateTime(2010, 4, 5, 18, 8, 8, 16); 



            //d 短日期 

            Console.WriteLine("d 短日期"); 

            Console.WriteLine(date.ToString("d"));    // 4/5/2010 

            Console.WriteLine(date.ToString("d", new CultureInfo("de-DE")));  // 05.04.2010 



            //D 长日期 

            Console.WriteLine("D 长日期"); 

            Console.WriteLine(date.ToString("D"));  // Monday, April 05, 2010 

            Console.WriteLine(date.ToString("D", new CultureInfo("es-MX"))); // lunes, 05 de abril de 2010 



            //f 完整日期短时间 

            Console.WriteLine("f 完整日期短时间"); 

            Console.WriteLine(date.ToString("f"));  //Monday, April 05, 2010 6:08 PM 



            //F 完整日期长时间 

            Console.WriteLine("F 完整日期长时间"); 

            Console.WriteLine(date.ToString("F"));  //Monday, April 05, 2010 6:08:08 PM 



            //g 常规日期短时间 

            Console.WriteLine("g 常规日期短时间"); 

            Console.WriteLine(date.ToString("g"));  // 4/5/2010 6:08 PM 

            Console.WriteLine(date.ToString("g", DateTimeFormatInfo.InvariantInfo)); // 04/05/2010 18:08 



            //G 常规日期长时间 

            Console.WriteLine("G 常规日期长时间"); 

            Console.WriteLine(date.ToString("G"));  // 4/5/2010 6:08:08 PM 



            //M or m 月格式 

            Console.WriteLine("M or m 月格式"); 

            Console.WriteLine(date.ToString("m"));  //April 05 



            //O or o Round-trip date/time pattern 

            Console.WriteLine("O or o Round-trip date/time pattern"); 

            Console.WriteLine(date.ToString("o"));  // 2010-04-05T18:08:08.0160000 



            //R or r   RFC1123 格式 

            Console.WriteLine("R or r   RFC1123 格式"); 

            Console.WriteLine(date.ToString("r"));  // Mon, 05 Apr 2010 18:08:08 GMT 



            //s 可排序格式 

            Console.WriteLine("s 可排序格式"); 

            Console.WriteLine(date.ToString("s"));  // 2010-04-05T18:08:08 



            //t 短时间格式 

            Console.WriteLine("t 短时间格式"); 

            Console.WriteLine(date.ToString("t"));  //6:08 PM 



            //T 长时间格式 

            Console.WriteLine("T 长时间格式"); 

            Console.WriteLine(date.ToString("T"));  //6:08:08 PM 



            //u 通用可排序格式 

            Console.WriteLine("u 通用可排序格式"); 

            Console.WriteLine(date.ToString("u")); //2010-04-05 18:08:08Z 



            //U 通用完整格式 

            Console.WriteLine("U 通用完整格式"); 

            Console.WriteLine(date.ToString("U")); //Monday, April 05, 2010 10:08:08 AM 



            //Y or y 年月格式 

            Console.WriteLine("Y or y 年月格式"); 

            Console.WriteLine(date.ToString("y"));  // April, 2010 



            //d 表示day 1-31 

            Console.WriteLine("d 表示day 1-31"); 

            Console.WriteLine(date.ToString("d,M"));   //5,4 

            Console.WriteLine(date.ToString("d,MM"));  //5,04 

            Console.WriteLine(date.ToString("d,MMMM")); //5,April 



            //dd 表示day 01-31 

            Console.WriteLine("dd 表示day 01-31"); 

            Console.WriteLine(date.ToString("dd,MMM")); //05,Apr 



            //ddd 表示本地化星期几的缩写 

            Console.WriteLine("ddd 表示本地化星期几的缩写"); 

            Console.WriteLine(date.ToString("ddd"));  //Mon 

            Console.WriteLine(date.ToString("ddd", new CultureInfo("fr-FR"))); // lun. 



            //dddd 表示本地化星期几的完全名称 

            Console.WriteLine("dddd 表示本地化星期几的完全名称"); 

            Console.WriteLine(date.ToString("dddd"));  //Monday 

            Console.WriteLine(date.ToString("dddd", new CultureInfo("zh-CN"))); //星期一 



            //f or F 表示秒小数部分的最高有效位  F:如果该位(末尾)为零,则不显示任何信息 

            Console.WriteLine("f or F 表示秒小数部分的最高有效位"); 

            Console.WriteLine(date.ToString("hh:mm:ss.f"));   //06:08:08.0 

            Console.WriteLine(date.ToString("hh:mm:ss.ff"));  //06:08:08.01 

            Console.WriteLine(date.ToString("hh:mm:ss.fff")); //06:08:08.016 

            Console.WriteLine(date.ToString("hh:mm:ss.ffff"));//06:08:08.0160 

            Console.WriteLine(date.ToString("hh:mm:ss.FFFF"));//06:08:08.016 



            //g or gg 时期或纪元 

            Console.WriteLine("g or gg 时期或纪元"); 

            Console.WriteLine(date.ToString("MM/dd/yyyy g")); //04/05/2010 A.D. 

            Console.WriteLine(date.ToString("MM/dd/yyyy gg"));//04/05/2010 A.D. 



            //h 小时表示为从 1 到 12 的数字 

            Console.WriteLine("h 小时表示为从 1 到 12 的数字"); 

            Console.WriteLine(date.ToString("h:m:s")); //6:8:8 



            //hh 小时表示为从 01 到 12 的数字 

            Console.WriteLine("hh 小时表示为从 01 到 12 的数字"); 

            Console.WriteLine(date.ToString("hh:m:s")); //06:8:8 



            //H  小时表示为从 0 到 23 的数字 

            Console.WriteLine("H  小时表示为从 0 到 23 的数字"); 

            Console.WriteLine(date.ToString("H:m:s")); //18:8:8 



            //HH  小时表示为从 00 到 23 的数字 

            Console.WriteLine("HH  小时表示为从 00 到 23 的数字"); 

            Console.WriteLine(date.ToString("HH:m:s")); //18:8:8 



            //K   表示日期和时间值的时区信息 

            Console.WriteLine("K   表示日期和时间值的时区信息"); 

            Console.WriteLine(DateTime.Now.ToString("%K"));  //+08:00 

            Console.WriteLine(DateTime.UtcNow.ToString("%K")); //Z  注:结果字符串"Z"来表示 UTC 日期 



            //m 将分钟表示为从 0 到 59 的数字 

            Console.WriteLine("m 将分钟表示为从 0 到 59 的数字"); 

            Console.WriteLine(date.ToString("hh:m:ss"));  //06:8:08 



            //mm 将分钟表示为从 00 到 59 的数字 

            Console.WriteLine("mm 将分钟表示为从 00 到 59 的数字"); 

            Console.WriteLine(date.ToString("hh:mm:ss")); //06:08:08 



            //M  将月表示为从 1 到 12 的数字 

            Console.WriteLine("M  将月表示为从 1 到 12 的数字"); 

            Console.WriteLine(date.ToString("yyyy/M/dd")); //2010/4/05 



            //MM  将月表示为从 01 到 12 的数字 

            Console.WriteLine("MM  将月表示为从 01 到 12 的数字"); 

            Console.WriteLine(date.ToString("yyyy/M/dd")); //2010/4/05 



            //MMM 月份的本地缩写 

            Console.WriteLine("MMM 月份的本地缩写"); 

            Console.WriteLine(date.ToString("MMM")); //Apr 

            Console.WriteLine(date.ToString("MMM", new CultureInfo("zh-CN"))); //四月 



            //MMMM 月份的本地全称 

            Console.WriteLine("MMMM 月份的本地全称"); 

            Console.WriteLine(date.ToString("MMMM")); //April 

            Console.WriteLine(date.ToString("MMMM", new CultureInfo("fr-FR"))); // avril 



            //s 将秒表示为从 0 至 59 的数字 

            //ss 将秒表示为从 00 到 59 的数字 



            //t 表示 AM/PM 指示符的第一个字符 

            Console.WriteLine("t 表示 AM/PM 指示符的第一个字符"); 

            Console.WriteLine(date.ToString("hh:mm:ss t")); //06:08:08 P 



            //tt 表示整个 AM/PM 指示符 

            Console.WriteLine("tt 表示整个 AM/PM 指示符"); 

            Console.WriteLine(date.ToString("hh:mm:ss tt"));//06:08:08 PM 



            //y  

            Console.WriteLine("y+"); 

            Console.WriteLine(date.ToString("y")); //April, 2010 

            Console.WriteLine(date.ToString("yy")); //10 

            Console.WriteLine(date.ToString("yyy"));//2010 

            Console.WriteLine(date.ToString("yyyy"));//2010 

            Console.WriteLine(date.ToString("yyyyy"));//02010 



            //z 表示本地操作系统的时区相对于协调世界时 (UTC) 的有符号偏移量(以小时为单位) 当一个z时,前面必须加 %  

            Console.WriteLine("z 表示本地操作系统的时区相对于协调世界时(UTC)的有符号偏移量"); 

            Console.WriteLine(DateTime.UtcNow.ToString("%z"));//+8 

            Console.WriteLine(DateTime.UtcNow.ToString("zz"));//+08 

            Console.WriteLine(DateTime.UtcNow.ToString("zzz"));//+08:00 





            #endregion 



            #endregion


原始URL:http://www.cnblogs.com/Peter-Zhang/articles/1782303.html

作者: Peter
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值