Formatting Types

#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
posted on 2010-07-21 16:14  PeterZhang  阅读(592)  评论(0)    收藏  举报