迁移到.NET Core 7后的日期时间utc问题

y53ybaqx  于 2023-03-04  发布在  .NET
关注(0)|答案(1)|浏览(210)

我将一个.NET Core 3应用程序迁移到了.NET 7。所有日期字段都是DateTime数据类型。迁移后,返回的日期不带“Z”说明符(表示它是UTC日期时间)。
这是什么原因呢?我可以通过更改所有日期数据类型DateTimeOffSet来进行修复。我不太清楚为什么在.NET迁移后会更改此数据类型。

public class Shipment : IAudit
{
    public Guid Id { get; set; }
    public string Title { get; set; }
    public DateTime Updated { get; set; }
    public string UpdatedBy { get; set; }
}

public class ShipmentDto
{
    public Guid Id { get; set; }
    public string Title { get; set; }
    public DateTime Updated { get; set; }
    public string UpdatedBy { get; set; }
}

//自动Map器

public class ShipmentProfile : Profile
{
    public ShipmentProfile()
    {
        CreateMap<Shipment, ShipmentDto>();
        CreateMap<ShipmentDto, Shipment>();
    }
}

//数据库调用

public IQueryable<Shipment> GetShipments()
{
    return db.Shipments.ProjectTo<Shipment>(mapper.ConfigurationProvider);
}

来自旧端点的响应,{更新:“2023年1月16日星期一07:47:50.4462437Z”}
来自新端点的响应,{更新:“2023年1月16日07:47:50.4462437”}

pieyvz9o

pieyvz9o1#

通过添加以下代码修复了此问题,

builder.Services.AddControllers().AddNewtonsoftJson(options =>
{
    options.SerializerSettings.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc;
});

相关问题