#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