JSON 值无法转换为 System.DateTime

Adi*_*Adi 13 c# json json-deserialization asp.net-core-webapi

我有一个员工

public class Employee
{
   [Key]
   public long ID { get; set; }
   public DateTime EmpDate { get; set; }
   public string FirstName { get; set; }
   public string LastName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我创建了 Web API 来发布员工数据:

[HttpPost]
public async Task<ActionResult<Employee>> PostLead(Employee employee)
{
      //Code to post
}
Run Code Online (Sandbox Code Playgroud)

这是我的 JSON 正文

{
    "firstname":"xyz",
    "lastname":"abc",
    "EmpDate":"2019-01-06 17:16:40"
}
Run Code Online (Sandbox Code Playgroud)

我收到错误消息The JSON value could not be converted to System.DateTime.但是当我将EmpDate值作为传递时2019-01-06,我没有收到错误消息。

Sea*_*ean 32

您的 JSON 中的日期值不正确。应该

2019-01-06T17:16:40
Run Code Online (Sandbox Code Playgroud)

大多数解析器使用ISO 8601

  • 其实json中的日期时间值并没有错。它应该被视为“自定义格式”。尽管大多数解析器默认使用 ISO 8601,但这并不意味着你/他/我必须使用它。字符串数据解析是业务逻辑的一个问题,如果我需要使用“yyyy-MM-dd hh:mm:ss”格式,那么我需要让解析器使用该格式。这么想吧。您正在进行第三方集成,他们不会更改其格式,说他们是支付网关提供商并在全球范围内广泛使用。 (2认同)
  • 还可以使用 new Date(stringValue).toISOString() (2认同)