web-dev-qa-db-ja.com

日時のXmlSerializationの形式を指定できますか?

日時をXMLファイル用にyyyyMMdd形式にシリアライズ/デシリアライズする必要があります。これに使用できる属性/回避策はありますか?

51
cjk

いいえ、ありません。その形式の場合、XMLスキーマに関する限り有効なdateTimeではありません。

最善の方法は次のとおりです。

[XmlIgnore]
public DateTime DoNotSerialize {get;set;}

public string ProxyDateTime {
    get {return DoNotSerialize.ToString("yyyyMMdd");}
    set {DoNotSerialize = DateTime.Parse(value);}
}
62
John Saunders

XmlElementAttribute #DataTypeは必要なものを提供する必要があります。

[XmlElement(DataType="date")]    
public DateTime Date1 {get;set;}

これにより、適切な xml日付 形式にシリアル化されたDate1プロパティが取得されます。

18
th2tran