csv 帮助程序库无法解析日期时间

问题描述 投票:0回答:0

我正在使用 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);
        }
    }

但仍然超越例外。需要一种方法来解析给定的日期时间。感谢提前

c# date datetime csvhelper csv-parser
© www.soinside.com 2019 - 2024. All rights reserved.