gpt4 book ai didi

c# - JavaScriptSerializer 无法将日期字符串识别为 DateTime?

转载 作者:行者123 更新时间:2023-11-28 20:31:46 24 4
gpt4 key购买 nike

这是我的模型:

public class ReportAllMediaDetailsParams
{
public int profileID { get; set; }
public int organisationID { get; set; }
public DateTime startDate { get; set; }
public DateTime endDate { get; set; }
}

这是我的反序列化器:

var serializer = new JavaScriptSerializer();
var reportParams = serializer.Deserialize<ReportAllMediaDetailsParams>(json);

来自 json 的日期是:

"{\"profileID\":\"41\",\"organisationID\":\"2252\",\"startDate\":\"01/01/1970\",\"endDate\":\"01/01/1970\"}"

最佳答案

  • 不要使用 JavaScriptSerializer,使用 Json.Net相反。

  • 请勿在 JSON 中使用特定于区域设置的格式,例如 MM/dd/yyyydd/MM/yyyy。例如,1/4/2013 是否代表四月的第一天?还是一月四号?没有办法知道。

  • 改用 ISO8601 格式。它是文化不变的,因此不存在歧义。在 ISO 格式中,您有 2013-01-04,它总是 yyyy-mm-dd,因此没有歧义。例如,完整的日期时间为 2013-01-04T05:30:27.123

  • 来自 C#,使用 DateTime.ToString("o") 来获取此格式 - 或者仅使用 Json.Net,它会自动序列化 DateTimeDateTimeOffset 使用 ISO 格式。

关于c# - JavaScriptSerializer 无法将日期字符串识别为 DateTime?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16217481/

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