C#(99):格式化信息、格式化数字、格式化日期
原文:
一、格式化方法:
1、ToString()实例方法
使用当前文化:
varname.ToString("C4");
使用特定文化:
varname.ToString("C4", new CultureInfo("en-us")); varname.ToString("C4", CultureInfo.CreateSpecifiCulture("zh-CN"));
2、字符串.Format()静态方法
string.Format("{0:C4}",varname); string.Format(CultureInfo.InvariantCulture,"{0:C4}",varname);
3、Console.Write()方法
Console.Write("{0:C4}",varname);
4、区域设置:
1、对数字.ToString()区域设置:
s1 = 4123.ToString("C", CultureInfo.InvariantCulture);//¤4,123.00 s2 = 4123.ToString("C", new CultureInfo("en-us", false).NumberFormat);//$4,123.00
2、对日期.ToString()区域设置:
s3 = DateTime.Now.ToString("f", CultureInfo.InvariantCulture);//Tuesday, 25 June 2019 08:53 s4 = DateTime.Now.ToString("f", new CultureInfo("en-us", false).DateTimeFormat);//Tuesday, June 25, 2019 8:53 AM
3、改变当前线程的文化:
Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
二、格式化数字(格式符不区分大小写)
1、格式化整数(对小数将引发异常),格式符后的数字表示总位数
(1)、格式化为整数,“D”,“Dx”:
string s1, s2; s1 = 4123.ToString("D");//4123 s2 = 4123.ToString("D6");//004123 Console.WriteLine(s1); Console.WriteLine(s2);
(2)、格式化成十六进制形式,“X”,“Xx”:
s1 = 4123.ToString("X");//101B s2 = 4123.ToString("X6");//00101B
2、格式化数字,格式符后的数字表示小数位数,可四舍五入。
(1)、货币形式:“C”,“Cx”,默认两位小数,有逗号
s1 = 4123.ToString("C");//¥4,123.00 s2 = 4123.ToString("C3");//¥4,123.000
(2)、数值形式:“N”,“Nx”,默认两位小数,有逗号
s1 = 4123.ToString("N");//4,123.00 s2 = 4123.ToString("N3");//4,123.000
(3)、定点形式:“F”,“Fx”,默认两位小数,无逗号
s1 = 4123.ToString("F");//4123.00 s2 = 4123.ToString("F3");//4123.000
(4)、指数形式:“E”,”Ex”,默认六位小数:
s1 = 4123.ToString("E");//4.123000E+003 s2 = 4123.7328.ToString("E3");//4.124E+003
(5)、百分数形式:“P”,“Px”,默认两位小数
double number = .2468013; Console.WriteLine(number.ToString("P", CultureInfo.InvariantCulture));// Displays 24.68 % Console.WriteLine(number.ToString("P1", CultureInfo.InvariantCulture));// Displays 24.7 %
3、自定义格式:
0位零占位符,#为空占位符。
s1 = 4123.ToString("000.000");//4123.000 s2 = 4123.ToString("##.###");//4123 s3 = 4123.ToString("0%");//412300% s4 = 4123.7328.ToString("000.000");//4123.733 s5 = 4123.7328.ToString("##.###");//4123.733 s6 = 4123.7328.ToString("0%");//412373%
4、IFormatProvider接口
- 1、CultureInfo:表示一个特殊的区域
- 2、NumberFormatInfo:特定区域数字格式信息。
- 3、DateTimeFormatInfo:特定区域日期时间格式信息。具有Calender属性可设置。
三、格式化日期和时间
1、标准格式:
(1)完整格式(Full,包括日期和时间):“F”,“f”,注意:仅小写“f”精确到分。
s1=DateTime.Now.ToString("F");//2019年6月24日 17:14:08 s2=DateTime.Now.ToString("f");//2019年6月24日 17:14
(2)常规完整格式(General):“G”,“g”。注意:无中文和英文显示,仅小写“g”仅精确到分钟。
s1=DateTime.Now.ToString("G");//2019-06-24 17:14:54 s2=DateTime.Now.ToString("g");//2019-06-24 17:14
(3)年月日(Day,日期):“D”,“d”。注意:小写“d”无中文和英文显示,仅符号.
s1=DateTime.Now.ToString("D");//2019年6月24日 s2=DateTime.Now.ToString("d");//2019-06-24
(4)年月(Year):“Y”,“y”(不分大小写)
s1=DateTime.Now.ToString("Y");//2019年6月 s2=DateTime.Now.ToString("y");//2019年6月
(5)月日(Month):“M”,“m”(不分大小写)
s1=DateTime.Now.ToString("M");//6月24日 s2=DateTime.Now.ToString("m");//6月24日
(6)时间(Time):“T”,“t”,注意:小写“t”仅精确到分。
s1=DateTime.Now.ToString("T");//17:17:29 s2=DateTime.Now.ToString("t");//17:17
2、自定义格式:
常见自定义格式:yyyy-MM-dd HH:mm:ss
(1)公元:“%g”:
s1=DateTime.Now.ToString("%g");//公元
(2)年: “%y”,“yy”(前导0),“yyy”,“yyyy”,
s1=DateTime.Now.ToString("%y");//19 s2=DateTime.Now.ToString("yy");//19 s3=DateTime.Now.ToString("yyy");//2019 s4=DateTime.Now.ToString("yyyy");//2019
(3)月:“%M”,“MM”(前导0),“MMM”,“MMMM”,
s1=DateTime.Now.ToString("%M");//6 s2=DateTime.Now.ToString("MM");//06 s3=DateTime.Now.ToString("MMM");//六月 s4=DateTime.Now.ToString("MMMM");//六月
(4)日:“%d”,“dd”(前导0):
s1=DateTime.Now.ToString("%d");//24 s2=DateTime.Now.ToString("dd");//24
(5)星期:“ddd”,“dddd”(全拼):
s1=DateTime.Now.ToString("ddd");//周一 s2=DateTime.Now.ToString("dddd");//星期一
(6)上下午:“%t”,“tt”(全拼):
s1=DateTime.Now.ToString("%t");//下 s2=DateTime.Now.ToString("tt");//下午
(7)小时:“%h”(12小时制),“yy”(前导0),“%H”(24小时制),“HH”(前导0)
s1=DateTime.Now.ToString("%h");//5 s2=DateTime.Now.ToString("hh");//05 s3=DateTime.Now.ToString("%H");//17 s4=DateTime.Now.ToString("HH");//17
(8)分钟:“%m”,“mm”(前导0):
s1=DateTime.Now.ToString("%m");//29 s2=DateTime.Now.ToString("mm");//29
(9)秒:“%s”,“ss”(前导0):
s3=DateTime.Now.ToString("%s");//45 s4=DateTime.Now.ToString("ss");//45
(10)日期间隔符”%/”,时间间隔符:“%:”:
s1=DateTime.Now.ToString("%/");//- s2=DateTime.Now.ToString("%:");//:
3、获取日期的英文缩写
三种方式:
s1 = DateTime.Now.ToString("MMM", CultureInfo.InvariantCulture);//Jun(推荐) s2 = new CultureInfo("en-us", false).DateTimeFormat.GetAbbreviatedMonthName(6);//Jun: s3 = new string[] { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }[DateTime.Now.Month - 1];//Jun
posted on 2021-03-11 16:47 springsnow 阅读(770) 评论(0) 编辑 收藏 举报