web-dev-qa-db-fra.com

Pouvez-vous spécifier le format pour XmlSerialization d'un datetime?

J'ai besoin de sérialiser/désérialiser un datetime au format yyyyMMdd pour un fichier XML. Existe-t-il un attribut/solution de contournement que je peux utiliser pour cela?

51
cjk

Non, il n'y en a pas. Si c'est dans ce format, ce n'est pas un dateTime valide en ce qui concerne le schéma XML.

Le mieux que vous puissiez faire est le suivant:

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

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

XmlElementAttribute # DataType devrait fournir ce dont vous avez besoin:

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

Cela obtiendra la propriété Date1 sérialisée au format xml date approprié.

18
th2tran