C#中,你还在用string.Format吗?

来源:互联网 发布:md5 php 编辑:程序博客网 时间:2024/06/05 19:26
 
C#中ToString()的常见用法

备忘
字符型转换为字符串

  1. // C 货币
  2. 2.5.ToString("C"); // ¥2.50
  3. // D 10进制数
  4. 25.ToString("D5"); // 25000
  5. // E 科学型
  6. 25000.ToString("E"); // 2.500000E+005
  7. // F 固定点
  8. 25.ToString("F2"); // 25.00
  9. // G 常规
  10. 2.5.ToString("G"); // 2.5
  11. // N 数字
  12. 2500000.ToString("N"); // 2,500,000.00
  13. // X 16进制
  14. 255.ToString("X"); // FF 如果要2位16进制数 255.ToString("X2");

  1. // C# 日期格式
  2. DateTime dt = DateTime.Now;
  3. dt.ToString();//2005-11-5 13:21:25
  4. dt.ToFileTime().ToString();//127756416859912816
  5. dt.ToFileTimeUtc().ToString();//127756704859912816
  6. dt.ToLocalTime().ToString();//2005-11-5 21:21:25
  7. dt.ToLongDateString().ToString();//2005年11月5日
  8. dt.ToLongTimeString().ToString();//13:21:25
  9. dt.ToOADate().ToString();//38661.5565508218
  10. dt.ToShortDateString().ToString();//2005-11-5
  11. dt.ToShortTimeString().ToString();//13:21
  12. dt.ToUniversalTime().ToString();//2005-11-5 5:21:25
  13. dt.Year.ToString();//2005
  14. dt.Date.ToString();//2005-11-5 0:00:00
  15. dt.DayOfWeek.ToString();//Saturday
  16. dt.DayOfYear.ToString();//309
  17. dt.Hour.ToString();//13
  18. dt.Millisecond.ToString();//441
  19. dt.Minute.ToString();//30
  20. dt.Month.ToString();//11
  21. dt.Second.ToString();//28
  22. dt.Ticks.ToString();//632667942284412864
  23. dt.TimeOfDay.ToString();//13:30:28.4412864
  24. dt.ToString();//2005-11-5 13:47:04
  25. dt.AddYears(1).ToString();//2006-11-5 13:47:04
  26. dt.AddDays(1.1).ToString();//2005-11-6 16:11:04
  27. dt.AddHours(1.1).ToString();//2005-11-5 14:53:04
  28. dt.AddMilliseconds(1.1).ToString();//2005-11-5 13:47:04
  29. dt.AddMonths(1).ToString();//2005-12-5 13:47:04
  30. dt.AddSeconds(1.1).ToString();//2005-11-5 13:47:05
  31. dt.AddMinutes(1.1).ToString();//2005-11-5 13:48:10
  32. dt.AddTicks(1000).ToString();//2005-11-5 13:47:04
  33. dt.CompareTo(dt).ToString();//0
  34. dt.Add(?).ToString();//问号为一个时间段
  35. dt.Equals("2005-11-6 16:11:04").ToString();//False
  36. dt.Equals(dt).ToString();//True
  37. dt.GetHashCode().ToString();//1474088234
  38. dt.GetType().ToString();//System.DateTime
  39. dt.GetTypeCode().ToString();//DateTime
  40.   
  41. dt.GetDateTimeFormats('s')[0].ToString();//2005-11-05T14:06:25
  42. dt.GetDateTimeFormats('t')[0].ToString();//14:06
  43. dt.GetDateTimeFormats('y')[0].ToString();//2005年11月
  44. dt.GetDateTimeFormats('D')[0].ToString();//2005年11月5日
  45. dt.GetDateTimeFormats('D')[1].ToString();//2005 11 05
  46. dt.GetDateTimeFormats('D')[2].ToString();//星期六 2005 11 05
  47. dt.GetDateTimeFormats('D')[3].ToString();//星期六 2005年11月5日
  48. dt.GetDateTimeFormats('M')[0].ToString();//11月5日
  49. dt.GetDateTimeFormats('f')[0].ToString();//2005年11月5日 14:06
  50. dt.GetDateTimeFormats('g')[0].ToString();//2005-11-5 14:06
  51. dt.GetDateTimeFormats('r')[0].ToString();//Sat, 05 Nov 2005 14:06:25 GMT
  52. string.Format("{0:d}",dt);//2005-11-5
  53. string.Format("{0:D}",dt);//2005年11月5日
  54. string.Format("{0:f}",dt);//2005年11月5日 14:23
  55. string.Format("{0:F}",dt);//2005年11月5日 14:23:23
  56. string.Format("{0:g}",dt);//2005-11-5 14:23
  57. string.Format("{0:G}",dt);//2005-11-5 14:23:23
  58. string.Format("{0:M}",dt);//11月5日
  59. string.Format("{0:R}",dt);//Sat, 05 Nov 2005 14:23:23 GMT
  60. string.Format("{0:s}",dt);//2005-11-05T14:23:23
  61. string.Format("{0:t}",dt);//14:23
  62. string.Format("{0:T}",dt);//14:23:23
  63. string.Format("{0:u}",dt);//2005-11-05 14:23:23Z
  64. string.Format("{0:U}",dt);//2005年11月5日 6:23:23
  65. string.Format("{0:Y}",dt);//2005年11月
  66. string.Format("{0}",dt);//2005-11-5 14:23:23
  67. string.Format("{0:yyyyMMddHHmmssffff}",dt);
  68. // 计算2个日期之间的天数差
  69. DateTime dt1 = Convert.DateTime("2007-8-1");
  70. DateTime dt2 = Convert.DateTime("2007-8-15");  
  71. TimeSpan span = dt2.Subtract(dt1);
  72. int dayDiff = span.Days + 1;
  73. // 计算某年某月的天数
  74. int days = DateTime.DaysInMonth(2007, 8);   
  75. days = 31;
  76. // 给日期增加一天、减少一天
  77. DateTime dt =DateTime.Now;
  78. dt.AddDays(1); //增加一天
  79. dt.AddDays(-1);//减少一天
  1. DateTime.ToString( "d"); // 返回 DateTime 值;“d”是标准短日期模式。
  2. DateTime.ToString( "%d"); // 返回月中的某天;“%d”是自定义模式。
  3. DateTime.ToString( "d "); // 返回后面跟有一个空白字符的月中的某天;“d”是自定义模式。

在实际中,我发现使用ToString的一个问题。其实也几乎没有必要使用string.Format。大部分都是可以使用ToString转化。至少我是这样认为的。不过的确在转化的时候会存在部分问题。

 

string output = Rand.ToString("{0:0000 0000 0000"});

 

大部分时候,我们可以这样用,使用writeline输出也没有问题,不过一个偶然的机会,发现了listBoxResult.Items.Add(output);这样的使用会打印出{0:2334 3233 2233}。这说明数字是传递了,但是格式也传递了进去。

开始第一反应就是使用string.Format转化。

后来找到上面的文章,才发现问题可以这样解决。

Rand.ToString("0000 0000 0000")这样写就行了。

 

总结:最近两天来用了JAVA和C#写相同的随机数程序。发现Eclipse的确好用,snippets,junit,refactory,还有localhistory等,真实好用的不得了,比VS这个工具外挂一些插件要强大不少。但是当我今天使用C#重写昨天JAVA的代码的时候,发现C#的代码要比JAVA的代码短好多,可以省去一个类和一个函数。看来纯粹从语言的角度来讲,C#应该算更高级一些。尽管NUNIT和其他的一些工具和JAVA的工具比差远了。但是相信有一天C#会在JAVA前面。就因为它能用更少的代码完成更多的功能,这就是高级语言的特点。所谓高级也就在于这里吧。

 

 

 

 

原创粉丝点击