我正在使用 csv 帮助程序库将 csv 文件解析为对象列表我已将日期时间格式添加到类中作为 yyyy-MM-dd hh:mm:ss t 但在解析时出错。日期格式如下。
public class Claim
{
[Name("Name")]
public string Name{ get; set; }
[Name("Number")]
public string Number{ get; set; }
[Name("Date")]
[Format("dd/MM/yyyy","yyyy-MM-dd hh:mm")]
public DateTime Date{ get; set; }
}
下面我使用 csvhelper 库来解析 csv 文件
using (var streamReader = new StreamReader(filePath))
{
using (var csvReader = new CsvReader(streamReader, CultureInfo.InvariantCulture))
{
var claims = csvReader.GetRecords<Claim>().ToList();
return claims;
}
}
以下是
2022-08-10 0:00
获取以下异常
CsvHelper.TypeConversion.TypeConverterException: The conversion cannot be performed.
Text: '10-08-2022'
MemberName: Date
MemberType: System.DateTime
TypeConverter: 'CsvHelper.TypeConversion.DateTimeConverter'
尝试了以下解决方案
var options = new TypeConverterOptions { Formats = new[] { "dd/MM/yyyy" } };
csvReader.Context.TypeConverterOptionsCache.AddOptions<DateTime>(options);
也在关注
csvReader.Context.RegisterClassMap<CsvMap>()
public sealed class CsvMap : CsvHelper.Configuration.ClassMap<Claim>
{
public CsvMap()
{
const string format = "dd/MM/yyyy";
var culture= CultureInfo.GetCultureInfo("en-US");
Map(m => m.Date).TypeConverterOption.Format(format)
.TypeConverterOption.CultureInfo(culture);
}
}
但仍然超越例外。需要一种方法来解析给定的日期时间。感谢提前