因此,我从后端API返回一个日期值。
这是我的模型:
public class Sales {
    ....
    public DateTime DateCreated {get;set;}
}我从我的Controller返回它
[System.Web.Http.HttpGet]
public async Task<Sales> GetSales() {
    .....
    Sales s = await GetSalesForTheUser();
    return s;
}由DateTime返回的Controller值在其末尾缺少Z。
返回的值是:2021-07-27T05:23:41.937 --这是错误的,因为当我在Javascript中解析它时,它被视为本地日期时间。当我在它的末尾添加Z (2021-07-27T05:23:41.937Z)时,这是正确的。从Javascript解析的日期给出了正确的值。
如何从后端(C#)修复正确的解析值?
发布于 2021-07-27 07:57:07
听起来问题就在DateTime对象的Kind中,而不是序列化。
如果DateTime.Kind是Local或Unspecified,则在ISO8601中序列化它将省略时区信息(在您的例子中是Z,它指示UTC)。
要解决这个问题,首先尝试在返回数据之前指定DateTime的类型。看这里如何:https://learn.microsoft.com/en-us/dotnet/api/system.datetime.specifykind?view=net-5.0。
如果这样做有效,检查您的服务,看看您是否正确地解释了返回的数据以填充属性Sales.DateCreated,并确保这是UTC。
https://stackoverflow.com/questions/68539924
复制相似问题