C# Error - System.FormatException

本文关键字:FormatException System Error | 更新日期: 2023-09-27 18:01:36

有人帮我解决了另一个问题,并给了我一个很好的代码示例。我试着稍微调整一下,写一个文件,而不是控制台,我得到以下错误:

系统。FormatException:字符串未被识别为有效的日期时间

代码如下:

// There is probably a more efficient way to do this...
string[] getFiles = Directory.GetFiles(@"C:'TestFiles", "*.x12");
string fn = getFiles[0];
string text = File.ReadAllText(fn);
var lines = text.Split(''n');
using (StreamWriter sw = new StreamWriter("outfile.txt"))
{
    foreach (var line in lines)
    {
        if (line.StartsWith("DTP*348"))
        {
            var elements = line.Split('*');
            var dateString = elements[3];
            var dateFormat = "yyyyMMdd";
            var date = DateTime.ParseExact(dateString, dateFormat, CultureInfo.InvariantCulture); // The error is thrown by this line
            if (date < new DateTime(2014, 06, 01))
            {
                date = new DateTime(2014, 06, 01);
                sw.WriteLine("DTP*" + elements[1] + "*" + elements[2] + "*" + "20140601");
            }
            else
            {
                sw.WriteLine(line);
            }
        }
        else
        {
            sw.WriteLine(line);
        }
    }
}

我已经验证了dateString确实包含yyyyMMdd格式的有效日期。知道我哪里做错了吗?

C# Error - System.FormatException

确保文本没有空白,密切注意任何肉眼看不见的回车和换行字符。字符串方法Trim是删除此类空白的一个很好的函数。