将自定义时间格式的时间字符串转成C#标准DateTime时间

今天遇到个问题,将"yyyyMMddHHmmss"直接用Convert.ToDateTime()转换时抛出个FormatException:该字符串未被识别为有效的 DateTime。

到网上搜索了一下,找到了解决方案:

        string time1 = "20150123134045";
        DateTime dt1 = DateTime.ParseExact(time1, "yyyyMMddHHmmss", CultureInfo.CurrentCulture);
        string time2 = "2015012313404500";
        DateTime dt2 = DateTime.ParseExact(time2, "yyyyMMddHHmmssff", CultureInfo.CurrentCulture);
        string time3 = "201501231340450000";
        DateTime dt3 = DateTime.ParseExact(time3, "yyyyMMddHHmmssffff", CultureInfo.CurrentCulture);
        string time4 = "2015,01,23,134045";
        DateTime dt4 = DateTime.ParseExact(time4, "yyyy,MM,dd,HHmmss", CultureInfo.CurrentCulture);

DateTime.ParseExact这个方法支持将自定义的时间格式转成标准的DateTime时间。我就试了四种,其他的大家可以尝试下。

对了,用这个方法可以获取C#所有的时间格式:

        DateTimeFormatInfo formatinfo = new DateTimeFormatInfo();
        string[] arr =  formatinfo.GetAllDateTimePatterns();    
原文地址:https://www.cnblogs.com/forever-star/p/4244113.html