C# 如何忽略某些字段(如出生日期)的DateTimeZoneHandling.Utc

C# 如何忽略某些字段(如出生日期)的DateTimeZoneHandling.Utc,c#,asp.net,asp.net-mvc,asp.net-core,asp.net-core-mvc,C#,Asp.net,Asp.net Mvc,Asp.net Core,Asp.net Core Mvc,我在Startup.cs中获得了许多datetime字段,并在处理之前将它们转换为UTC,但我想忽略一些要转换为UTC的字段,如DOB。如何忽略某些字段。我是否需要放置任何属性或某些东西,以便在不转换为UTC的情况下按原样接受dob Startup.cs相关代码 具有dob字段的类 听起来您正试图使这些特定的datetime对象没有时区。在他们的set方法中,您可以将他们的时区设置为UTC或将他们的偏移设置为零。尝试使用此装饰器: [DisplayFormat(ApplyFormatInEdit

我在Startup.cs中获得了许多datetime字段,并在处理之前将它们转换为UTC,但我想忽略一些要转换为UTC的字段,如DOB。如何忽略某些字段。我是否需要放置任何属性或某些东西,以便在不转换为UTC的情况下按原样接受dob

Startup.cs相关代码

具有dob字段的类


听起来您正试图使这些特定的datetime对象没有时区。在他们的
set
方法中,您可以将他们的时区设置为UTC或将他们的偏移设置为零。

尝试使用此装饰器:

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "yyyy'-'MM'-'dd'T'HH':'mm':'ss.fff'Z'")]

但是我更喜欢Jake Steffen的答案。我试过[DisplayFormat(ApplyFormatInEditMode=true,DataFormatString=“yyyy'-'MM'-'dd'T'HH':'MM':'ss.fff'Z'))公共日期时间出生日期{get;set;}仍然不起作用。如果我给出2000年1月1日,它会回到1999年12月31日,尝试删除以下行
options.SerializerSettings.DateTimeZoneHandling=DateTimeZoneHandling.Utc;IsoDateTimeConverter dateConverter=新的IsoDateTimeConverter{DateTimeFormat=“yyyy'-MM'-'dd'T'HH':'MM':'ss.fff'Z'}需要的任何地方,日期都将转换为UTC日期。我想要UTC日期,但不是所有字段。如果我删除这些行,那么它将适用于所有。
[DataContract(Name = "Patient")]
public class Patient
{
    [DataMember(IsRequired = true)]
    public Guid PatientId { get; set; }

    [DataMember(IsRequired = true)]
    public DateTime DateOfBirth { get; set; }
}
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "yyyy'-'MM'-'dd'T'HH':'mm':'ss.fff'Z'")]