C#字符串转换为时间

    public class DateConvert
    {
        public static bool ConvertToDate(string dateString, out DateTime dateValue)
        {
            if (DateTime.TryParse(dateString, out dateValue))
            {
                return true;
            }
            return ConvertToDateExact(dateString, out dateValue);
        }

        private static bool ConvertToDateExact(string dateString, out DateTime dateValue)
        {
            DateTimeFormatInfo dtFormat = new System.Globalization.DateTimeFormatInfo();

            // 常规类型,可通过TryParse成功转换
            //string[] formatstring = new string[] { "yyyyMMdd", "yyMMdd", "yyyy年MM月dd日", "yyyy/MM/dd", "yyyy-MM-dd", "yyyy.MM.dd", "yy/MM/dd", "yy-MM-dd", "yy.MM.dd" };
            string[] formatstring = new string[] { "yyyyMMdd", "yyMMdd", "yyyy年MM月dd日" };

            //TryParseExact(string s, string[] formats, IFormatProvider provider, DateTimeStyles style, out DateTime result)
            if (DateTime.TryParseExact(dateString, formatstring, dtFormat, DateTimeStyles.None, out dateValue))
            {
                return true;
            }

            return false;
        }
    }

 

经测试,在中文64位win7系统中,2014年10月28日这种字符串,也可通过TryParse进行转换。

测试代码:

private void simpleButton4_Click(object sender, EventArgs e)
        {
            string[] testTime = new string[] { "95.06.08",  "2000.01.19", "20141028", "2014/10/28", 
                "2014/9/1", "2014-9-1", "2014-9-10", "2014-09-01", "2014年10月28日", "141028"};
            DateTime dt;
            foreach (string s in testTime)
            {
                if (DateConvert.ConvertToDate(s, out dt))
                {
                    Console.WriteLine(dt.ToString());
                }
                else
                {
                    Console.WriteLine("failed" + s);
                }
            }
        }

输出结果:

 

posted @ 2014-10-28 15:05  rain_2012_qf  阅读(1193)  评论(0)    收藏  举报