我正在使用最新版本的CsvHelper库,但是Azure WebJob却在读取我的csv文件时遇到了麻烦。
它表示无效的DateTime格式。尽管我有101%的信心,我的csv具有正确的DateTime格式。
我相信CsvHelper会导致此问题,但我真的不知道。
如果需要更多信息,请告诉我。
答案 0 :(得分:0)
对于这样的问题,如果我们没有可以重现该问题的样本,那么我们很难回答。因此,在这里,我将仅向您分享一种自行解决问题的有效方法。
首先,该问题不是由Web作业引起的,因此您应该首先在本地对其进行调试。
1,创建一个简单的控制台应用程序进行测试。
2,下载CsvHelper库的源代码,在VS中的相同解决方案中添加源项目,然后引用CsvHelper项目,如下所示:
3,在测试应用程序中,输入一些具有与Web作业相同功能的代码。以下是我用于演示的内容。 Foo类包含DateTime属性:
class Program
{
static void Main(string[] args)
{
using (var reader = new StreamReader(@"C:\Users\toml\Desktop\test.csv"))
using (var csv = new CsvReader(reader))
{
csv.Configuration.BadDataFound = null;
var records = csv.GetRecords<Foo>();
foreach (var item in records)
{
Console.WriteLine(item.Time);
}
}
Console.ReadKey();
}
}
public class Foo
{
public int Id { get; set; }
public string Name { get; set; }
public DateTime Time { get; set; }
}
4,根据堆栈跟踪,该错误发生在TypeConversion文件夹-> DateTimeConverter.cs文件中的ConvertFromString
方法上。
打开此文件并设置断点,如下所示:
引发异常的最后一个方法是DateTime.Parse( text, formatProvider, dateTimeStyle )
。
现在,运行项目并检查每个参数,尤其是“文本”是否正确。
它将为您提供更多调试信息。