随心所欲格式化时间

      前几天写代码需要将DateTime格式化为日月年的显示方式,DataTime提供了一个ToString的重载方法: public string ToString(IFormatProvider provider)
      参数provider表示它提供区域性特定的格式设置信息,DateTimeFormatInfo 类实现了IFormatProvider 接口,所以我们可以使用DateTimeFormatInfo 的对象进行格式化时间。
      下面是一个对时间进行格式化的方法,该方法有三个参数:第一个是要格式的DateTime类型的实例.第二个参数format 表示要格式的显示方式,比如年月日、月日年或者日月年,现在只接受StrFormat枚举类型。第三个参数表示日期中的分隔符。
    enum StrFormat
    { 
        YMD,MDY,DMY
    }

    
private static string ConvertStrDateTimeToString(DateTime date, StrFormat format, string seperator)
    {
        System.Globalization.DateTimeFormatInfo dateFormat 
= new System.Globalization.DateTimeFormatInfo();
        
switch (format)
        {
            
case StrFormat.YMD:
                dateFormat.ShortDatePattern 
= "yyyy/MM/dd";
                
break;
            
case StrFormat.MDY:
                dateFormat.ShortDatePattern 
= "MM/dd/yyyy";
                
break;
            
case StrFormat.DMY:
                dateFormat.ShortDatePattern 
= "dd/MM/yyyy";
                
break;
            
default:
                
break;
        }
        dateFormat.DateSeparator 
= seperator;
        
return date.ToString(dateFormat);
    }
      下面的Main方法可以测试上面的代码
    public static void Main()
    {
        DateTime date 
= DateTime.Now;
        
string strDate = ConvertStrDateTimeToString(date, StrFormat.DMY, "-");
        Console.WriteLine(strDate);
        Console.Read();
    }


posted @ 2009-07-27 22:45  百利  阅读(308)  评论(0编辑  收藏  举报