ServiceStack-年,月和日参数即使使用JsConfig

我在线上查看了多种资源,但是我尝试的一切似乎都行不通。我在做什么错了?

使用指令

using ServiceStack;
using ServiceStack.Text;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;

代码

JsConfig<DateTime>.DeSerializeFn = str => DateTime.ParseExact(str,"dd/MM/yyyy hh:mm",CultureInfo.invariantculture);

using (var fs = File.Open(@"C:\temp\data.csv",FileMode.Open,Fileaccess.Read,FileShare.ReadWrite))
{
    var data = CsvSerializer.DeserializeFromStream<List<Class>>(fs);
}

也尝试过

JsConfig<DateTime>.DeSerializeFn = str => DateTime.ParseExact(str,CultureInfo.invariantculture);
var list = File.ReadAllText(@"C:\temp\data.csv").FromCsv<List<Class>>();

csv文件中包含什么?

StartDate,FirstRedemptionDate,FirstSubscriptionDate

2014年1月8日00:00、2014年8月31日00:00、2014年1月8日00:00

30/09/2014 00:00,01/08/2015 00:00,30/09/2013 00:00

markrolon 回答:ServiceStack-年,月和日参数即使使用JsConfig

问题是因为您的CSV同时具有gcloud auth configure-docker 定界符和,空间定界符,所以在使用定界符时CSV是空格敏感的,例如您的标题应该改为:

,

目前StartDate,FirstRedemptionDate,FirstSubscriptionDate 的标头值为'FirstRedemptionDate'

我进行了更改,以便在this commit中自动修剪标头,从而使您自定义的DateTime反序列化器可与latest v5.7.1 that's now on MyGet中可用的带前导/尾随空格的标头进行匹配。>

由于您的日期值中也有空格,因此您还需要在解析之前修剪值,例如:

' FirstRedemptionDate'

现在应该使用最新的v5.7.1 of ServiceStack.Text on MyGet正确解析哪个。

本文链接:https://www.f2er.com/3153989.html

大家都在问