Prevent timezone conversion on deserialization of DateTime value

前端 未结 4 432
离开以前
离开以前 2020-12-01 10:40

I have a class that I serialize/deserialize using XmlSerializer. This class contains a DateTime field.

When serialized, the DateTime

4条回答
  •  有刺的猬
    2020-12-01 11:18

    Instead of parsing as a DateTime you can parse it as a DateTimeOffset and use the DateTimeOffset.DateTime property to ignore the timezone. Like this:

    [XmlIgnore()]
    public DateTime Time { get; set; }
    
    [XmlElement(ElementName = "Time")]
    public string XmlTime
    {
        get { return XmlConvert.ToString(Time, XmlDateTimeSerializationMode.RoundtripKind); }
        set { Time = DateTimeOffset.Parse(value).DateTime; }
    }
    

提交回复
热议问题