【问题标题】:C# serializing Class to XML where one of class properties is DateTime. How to make this property in ISO format?C# 将类序列化为 XML,其中类属性之一是 DateTime。如何以 ISO 格式制作此属性?
【发布时间】:2010-09-22 21:34:42
【问题描述】:

我正在序列化包含 DateTime 属性的类。

public DateTime? Delivered { get; set; }

序列化后Delivered节点包含格式如下的DateTime:

2008-11-20T00:00:00

如何更改此属性使其看起来像这样:

2008-11-20 00:00:00

提前致谢

【问题讨论】:

    标签: datetime xml-serialization


    【解决方案1】:

    【讨论】:

      【解决方案2】:

      我在 XmlSerialization 期间用于奇怪格式的 hack 是拥有一个仅在 XmlSerialization 期间使用的特殊属性

      //normal DateTime accessor
      [XmlIgnore]
      public DateTime Delivered { get; set; }
      
      //special XmlSerialization accessor
      [XmlAttribute("DateTime")]
      public string XmlDateTime
      {
          get { return this.Delivered.ToString("o"); }
          set { this.Delivered = new DateTime.Parse(value); }
      }
      

      【讨论】:

      • 我相信您的意思是“this.Delivered”而不是“this.DateTime”?
      • 我的 DateTime 属性可以为空(DateTime?)这会改变很多吗?
      • 也许这应该移到“hackoverflow”?
      猜你喜欢
      • 1970-01-01
      • 2014-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-16
      • 1970-01-01
      • 2021-12-13
      相关资源
      最近更新 更多