Can you specify format for XmlSerialization of a datetime?

I need to serialize / deserialize a datetime into yyyyMMdd format for an XML file. Is there an attribute / workaround I can use for this?


Solution 1:

No, there isn't. If it's in that format, then it's not a valid dateTime as far as XML Schema is concerned.

The best you can do is as follows:

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

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

Solution 2:

XmlElementAttribute#DataType should provide what you need:

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

This will get Date1 property serialized to the proper xml date format.