gpt4 book ai didi

c# - 牛顿软件.Json.JsonReaderException : Could not convert string to DateTime:

转载 作者:行者123 更新时间:2023-12-02 19:51:49 29 4
gpt4 key购买 nike

我正在尝试将一些日期插入到我的本地数据库中。我收到一个错误:

{Newtonsoft.Json.JsonReaderException: Could not convert string to DateTime: 20-09-1982 12:00:00. Path '[0].BIRTHDAY', line 1, position 71.

这是我的代码:

var insertdata = new ClientIndividualTable
{
COID = item.COID,
CLIENTID = item.CLIENTID,
BIRTHDAY = Convert.ToDateTime(item.BIRTHDAY)
};

await DefaultSettings.conn.InsertOrReplaceAsync(insertdata);

我也试过还是报错:

DateTime.Parse(item.BIRTHDAY)

以后我该如何解决和避免这种情况?

最佳答案

看起来您的错误在以 var insertdata = new ClientIndividualTable 开头的行中,而是在那之前的一些行中。

您的错误可能出现在与此类似的一行中。

MyJsonClass item = JsonConvert.DeserializeObject<MyJsonClass>(fileText);

您必须创建一个 DateTime 转换器,以便 Newtonsoft 知道如何处理所使用的自定义格式。之后,您必须装饰用于向 DateTime 属性添加属性的类。

示例 JSON 文件:

{
"COID" : "myCompanyId",
"CLIENTID" : "myClientId",
"BIRTHDAY" : "20-09-1982 12:00:00",
}

匹配JSON结构的类:

public class MyJsonClass
{
public string COID { get; set; }
public string CLIENTID { get; set; }
[JsonConverter(typeof(CustomDateTimeConverter))]
public DateTime? BIRTHDAY { get; set; }
}

JsonConverter 与此类似。

public class CustomDateTimeConverter : DateTimeConverterBase
{
private const string Format = "dd-MM-yyyy HH:mm:ss";

public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
writer.WriteValue(((DateTime)value).ToString(Format));
}

public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
if (reader.Value == null)
{
return null;
}

var s = reader.Value.ToString();
DateTime result;
if (DateTime.TryParseExact(s, Format, CultureInfo.InvariantCulture, DateTimeStyles.None, out result))
{
return result;
}

return null;
}
}

注意:我的答案基于这个 blog post

关于c# - 牛顿软件.Json.JsonReaderException : Could not convert string to DateTime:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58005665/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com