как игнорировать DateTimeZoneHandling.Utc для некоторых полей, таких как дата рождения - PullRequest
1 голос
/ 03 июня 2019

Я получаю много полей даты и времени и преобразую их в UTC перед обработкой в ​​Startup.cs, но я хочу игнорировать некоторые поля, которые нужно преобразовать в UTC, например DOB. как игнорировать некоторые поля. Нужно ли мне указывать какой-либо атрибут или что-то еще, чтобы я мог взять dob без изменений в UTC?

Startup.cs соответствующий код

var builder = services.AddMvc();
builder.AddJsonOptions(options =>
{
    options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
    options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
    // for UTC for datetime
    options.SerializerSettings.DateTimeZoneHandling = DateTimeZoneHandling.Utc;
    IsoDateTimeConverter dateConverter = new IsoDateTimeConverter
    {
        DateTimeFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ss.fff'Z'"
    };
    //options.SerializerSettings.Converters.Add(dateConverter);
});

Класс с полем dob

[DataContract(Name = "Patient")]
public class Patient
{
    [DataMember(IsRequired = true)]
    public Guid PatientId { get; set; }

    [DataMember(IsRequired = true)]
    public DateTime DateOfBirth { get; set; }
}

Ответы [ 2 ]

0 голосов
/ 03 июня 2019

Попробуйте использовать этот декоратор:

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "yyyy'-'MM'-'dd'T'HH':'mm':'ss.fff'Z'")]
0 голосов
/ 03 июня 2019

Похоже, вы пытаетесь сделать так, чтобы эти конкретные объекты даты и времени не имели часового пояса.В их методе set вы можете установить часовой пояс UTC или установить смещение равным нулю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...