[转载]C# ToString格式字符串整理Format数字、日期和枚举的标准格式设置说明符

[转载]C# ToString格式字符串整理(Format)(数字、日期和枚举的标准格式设置说明符)(SamWang) – SamWang – 博客园.

日常开发中,格式字符串的情况非常多。经常也会忘记,经常去查有些麻烦,所以今天就花点时间做个整理。

格式字符串用的比较多的有数字、日期与枚举的格式化。

 

 一、数字格式字符串

C或c 本地货币格式
D或d   十进制格式,把整数转换为以10为基数的书,如果给定一个精度说明符,就加上前导0
E或e   科学计数法(指数)格式,精度说明符设置小数位数(默认为6),格式字符串的大小写(e或E)确定指数符号的大小写。
F或f   固定点格式,精度说明符设置小数位数,可以为0
G或g 普通格式,使用E或F格式取决于哪种格式较简单
N或n   数字格式,用逗号表示千分符,例如32,767.44
P或p   百分数格式
X或x 十六进制格式,精度说明符用于加上前导0

先用例子说明几种格式字符串的方法:

<span class="kwd">double</span><span class="pln"> d </span><span class="pun">=</span><span class="pln"> </span><span class="lit">123.456</span><span class="pun">;</span><span class="pln">
</span><span class="typ">Console</span><span class="pun">.</span><span class="typ">WriteLine</span><span class="pun">(</span><span class="str">"ToString:{0}"</span><span class="pun">,</span><span class="pln"> d</span><span class="pun">.</span><span class="typ">ToString</span><span class="pun">(</span><span class="str">"C"</span><span class="pun">));</span><span class="pln">
</span><span class="typ">Console</span><span class="pun">.</span><span class="typ">WriteLine</span><span class="pun">(</span><span class="str">"Format:{0}"</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">string</span><span class="pun">.</span><span class="typ">Format</span><span class="pun">(</span><span class="str">"{0:C}"</span><span class="pun">,</span><span class="pln">d</span><span class="pun">));</span><span class="pln">
</span><span class="typ">Console</span><span class="pun">.</span><span class="typ">WriteLine</span><span class="pun">(</span><span class="str">"Console:{0:C}"</span><span class="pun">,</span><span class="pln"> d</span><span class="pun">);</span>

 

输出结果:

数字格式化程序例子:

<span class="typ">Console</span><span class="pun">.</span><span class="typ">WriteLine</span><span class="pun">(</span><span class="str">"十六进制格式符X:{0}"</span><span class="pun">,</span><span class="pln"> </span><span class="pun">(</span><span class="lit">145</span><span class="pun">).</span><span class="typ">ToString</span><span class="pun">(</span><span class="str">"X"</span><span class="pun">));</span><span class="com">//X只支持整型</span><span class="pln">
</span><span class="kwd">double</span><span class="pun">[]</span><span class="pln"> numbers </span><span class="pun">=</span><span class="pln"> </span><span class="pun">{</span><span class="lit">1054.32179</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">195489100.8377</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1.0437E21</span><span class="pun">,</span><span class="pln">
</span><span class="pun">-</span><span class="lit">1.0573e-05</span><span class="pun">};</span><span class="pln">
</span><span class="kwd">string</span><span class="pun">[]</span><span class="pln"> specifiers </span><span class="pun">=</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> </span><span class="str">"C"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"E"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"F"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"G"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"N"</span><span class="pun">,</span><span class="str">"P"</span><span class="pun">,</span><span class="pln">
</span><span class="str">"R"</span><span class="pun">,</span><span class="str">"#,000.000"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"0.###E-000"</span><span class="pun">,</span><span class="pln">
</span><span class="str">"000,000,000,000.00###"</span><span class="pln"> </span><span class="pun">};</span><span class="pln">
</span><span class="kwd">foreach</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">double</span><span class="pln"> number </span><span class="kwd">in</span><span class="pln"> numbers</span><span class="pun">)</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
</span><span class="typ">Console</span><span class="pun">.</span><span class="typ">WriteLine</span><span class="pun">(</span><span class="str">"Formatting of {0}:"</span><span class="pun">,</span><span class="pln"> number</span><span class="pun">);</span><span class="pln">
</span><span class="kwd">foreach</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">string</span><span class="pln"> specifier </span><span class="kwd">in</span><span class="pln"> specifiers</span><span class="pun">)</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
</span><span class="typ">Console</span><span class="pun">.</span><span class="typ">WriteLine</span><span class="pun">(</span><span class="str">" {0,5}: {1}"</span><span class="pun">,</span><span class="pln">
specifier</span><span class="pun">,</span><span class="pln"> number</span><span class="pun">.</span><span class="typ">ToString</span><span class="pun">(</span><span class="pln">specifier</span><span class="pun">));</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="typ">Console</span><span class="pun">.</span><span class="typ">WriteLine</span><span class="pun">();</span><span class="pln">
</span><span class="pun">}</span>

输出结果:

MSDN:Double.ToString 方法 (String)

 

  二、日期格式字符串

<span class="kwd">static</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> </span><span class="typ">DateToString</span><span class="pun">()</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
</span><span class="typ">DateTime</span><span class="pln"> dateValue </span><span class="pun">=</span><span class="pln"> </span><span class="typ">DateTime</span><span class="pun">.</span><span class="typ">Now</span><span class="pun">;</span><span class="pln">
</span><span class="com">// Create an array of standard format strings.</span><span class="pln">
</span><span class="kwd">string</span><span class="pun">[]</span><span class="pln"> standardFmts </span><span class="pun">=</span><span class="pln"> </span><span class="pun">{</span><span class="str">"d"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"D"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"f"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"F"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"g"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"G"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"m"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"o"</span><span class="pun">,</span><span class="pln">
</span><span class="str">"R"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"s"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"t"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"T"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"u"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"U"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"y"</span><span class="pun">};</span><span class="pln">
</span><span class="com">// Output date and time using each standard format string.</span><span class="pln">
</span><span class="kwd">foreach</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">string</span><span class="pln"> standardFmt </span><span class="kwd">in</span><span class="pln"> standardFmts</span><span class="pun">)</span><span class="pln">
</span><span class="typ">Console</span><span class="pun">.</span><span class="typ">WriteLine</span><span class="pun">(</span><span class="str">"{0}: {1}"</span><span class="pun">,</span><span class="pln"> standardFmt</span><span class="pun">,</span><span class="pln">
dateValue</span><span class="pun">.</span><span class="typ">ToString</span><span class="pun">(</span><span class="pln">standardFmt</span><span class="pun">));</span><span class="pln">
</span><span class="typ">Console</span><span class="pun">.</span><span class="typ">WriteLine</span><span class="pun">();</span><span class="pln">
 
</span><span class="com">// Create an array of some custom format strings.</span><span class="pln">
</span><span class="kwd">string</span><span class="pun">[]</span><span class="pln"> customFmts </span><span class="pun">=</span><span class="pln"> </span><span class="pun">{</span><span class="str">"yyyyMMddHHmmss"</span><span class="pun">,</span><span class="str">"h:mm:ss.ff t"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"d MMM yyyy"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"HH:mm:ss.f"</span><span class="pun">,</span><span class="pln">
</span><span class="str">"dd MMM HH:mm:ss"</span><span class="pun">,</span><span class="pln"> </span><span class="pun">@</span><span class="str">"\Mon\t\h\: M"</span><span class="pun">,</span><span class="pln"> </span><span class="str">"HH:mm:ss.ffffzzz"</span><span class="pln"> </span><span class="pun">};</span><span class="pln">
</span><span class="com">// Output date and time using each custom format string.</span><span class="pln">
</span><span class="kwd">foreach</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">string</span><span class="pln"> customFmt </span><span class="kwd">in</span><span class="pln"> customFmts</span><span class="pun">)</span><span class="pln">
</span><span class="typ">Console</span><span class="pun">.</span><span class="typ">WriteLine</span><span class="pun">(</span><span class="str">"'{0}': {1}"</span><span class="pun">,</span><span class="pln"> customFmt</span><span class="pun">,</span><span class="pln">
dateValue</span><span class="pun">.</span><span class="typ">ToString</span><span class="pun">(</span><span class="pln">customFmt</span><span class="pun">));</span><span class="pln">
</span><span class="pun">}</span>

输出结果:

    MSDN:DateTime.ToString 方法 (String)

三、枚举格式字符串

<span class="kwd">enum</span><span class="pln"> </span><span class="typ">Colors</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> </span><span class="typ">Red</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Green</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Blue</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Yellow</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="lit">12</span><span class="pln"> </span><span class="pun">};</span><span class="pln">
</span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> </span><span class="typ">EnumToString</span><span class="pun">()</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
</span><span class="typ">Colors</span><span class="pln"> myColor </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Colors</span><span class="pun">.</span><span class="typ">Yellow</span><span class="pun">;</span><span class="pln">
 
</span><span class="typ">Console</span><span class="pun">.</span><span class="typ">WriteLine</span><span class="pun">(</span><span class="str">"Colors.Red = {0}"</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Colors</span><span class="pun">.</span><span class="typ">Red</span><span class="pun">.</span><span class="typ">ToString</span><span class="pun">(</span><span class="str">"d"</span><span class="pun">));</span><span class="pln">
</span><span class="typ">Console</span><span class="pun">.</span><span class="typ">WriteLine</span><span class="pun">(</span><span class="str">"Colors.Green = {0}"</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Colors</span><span class="pun">.</span><span class="typ">Green</span><span class="pun">.</span><span class="typ">ToString</span><span class="pun">(</span><span class="str">"d"</span><span class="pun">));</span><span class="pln">
</span><span class="typ">Console</span><span class="pun">.</span><span class="typ">WriteLine</span><span class="pun">(</span><span class="str">"Colors.Blue = {0}"</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Colors</span><span class="pun">.</span><span class="typ">Blue</span><span class="pun">.</span><span class="typ">ToString</span><span class="pun">(</span><span class="str">"d"</span><span class="pun">));</span><span class="pln">
</span><span class="typ">Console</span><span class="pun">.</span><span class="typ">WriteLine</span><span class="pun">(</span><span class="str">"Colors.Yellow = {0}"</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Colors</span><span class="pun">.</span><span class="typ">Yellow</span><span class="pun">.</span><span class="typ">ToString</span><span class="pun">(</span><span class="str">"d"</span><span class="pun">));</span><span class="pln">
 
</span><span class="typ">Console</span><span class="pun">.</span><span class="typ">WriteLine</span><span class="pun">(</span><span class="str">"{0}myColor = Colors.Yellow{0}"</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Environment</span><span class="pun">.</span><span class="typ">NewLine</span><span class="pun">);</span><span class="pln">
 
</span><span class="typ">Console</span><span class="pun">.</span><span class="typ">WriteLine</span><span class="pun">(</span><span class="str">"myColor.ToString(\"g\") = {0}"</span><span class="pun">,</span><span class="pln"> myColor</span><span class="pun">.</span><span class="typ">ToString</span><span class="pun">(</span><span class="str">"g"</span><span class="pun">));</span><span class="pln">
</span><span class="typ">Console</span><span class="pun">.</span><span class="typ">WriteLine</span><span class="pun">(</span><span class="str">"myColor.ToString(\"G\") = {0}"</span><span class="pun">,</span><span class="pln"> myColor</span><span class="pun">.</span><span class="typ">ToString</span><span class="pun">(</span><span class="str">"G"</span><span class="pun">));</span><span class="pln">
 
</span><span class="typ">Console</span><span class="pun">.</span><span class="typ">WriteLine</span><span class="pun">(</span><span class="str">"myColor.ToString(\"x\") = {0}"</span><span class="pun">,</span><span class="pln"> myColor</span><span class="pun">.</span><span class="typ">ToString</span><span class="pun">(</span><span class="str">"x"</span><span class="pun">));</span><span class="pln">
</span><span class="typ">Console</span><span class="pun">.</span><span class="typ">WriteLine</span><span class="pun">(</span><span class="str">"myColor.ToString(\"X\") = {0}"</span><span class="pun">,</span><span class="pln"> myColor</span><span class="pun">.</span><span class="typ">ToString</span><span class="pun">(</span><span class="str">"X"</span><span class="pun">));</span><span class="pln">
 
</span><span class="typ">Console</span><span class="pun">.</span><span class="typ">WriteLine</span><span class="pun">(</span><span class="str">"myColor.ToString(\"d\") = {0}"</span><span class="pun">,</span><span class="pln"> myColor</span><span class="pun">.</span><span class="typ">ToString</span><span class="pun">(</span><span class="str">"d"</span><span class="pun">));</span><span class="pln">
</span><span class="typ">Console</span><span class="pun">.</span><span class="typ">WriteLine</span><span class="pun">(</span><span class="str">"myColor.ToString(\"D\") = {0}"</span><span class="pun">,</span><span class="pln"> myColor</span><span class="pun">.</span><span class="typ">ToString</span><span class="pun">(</span><span class="str">"D"</span><span class="pun">));</span><span class="pln">
 
</span><span class="typ">Console</span><span class="pun">.</span><span class="typ">WriteLine</span><span class="pun">(</span><span class="str">"myColor.ToString(\"f\") = {0}"</span><span class="pun">,</span><span class="pln"> myColor</span><span class="pun">.</span><span class="typ">ToString</span><span class="pun">(</span><span class="str">"f"</span><span class="pun">));</span><span class="pln">
</span><span class="typ">Console</span><span class="pun">.</span><span class="typ">WriteLine</span><span class="pun">(</span><span class="str">"myColor.ToString(\"F\") = {0}"</span><span class="pun">,</span><span class="pln"> myColor</span><span class="pun">.</span><span class="typ">ToString</span><span class="pun">(</span><span class="str">"F"</span><span class="pun">));</span><span class="pln">
</span><span class="pun">}</span>

输出结果:

MSDN:Enum.ToString 方法 (String)

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

登录

注册