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