Monday, February 6, 2017

Return ISO 8601 dates when converting object to JSON using DataContractJsonSerializer

Below is an example of how to return a DataTime value in the ISO 8601 format when serializing an object using DataContractJsonSerializer.

[DataContract]
public class MyObjectWithDate
{
    [IgnoreDataMember]
    public DateTime MyDate { get; set; }

    [DataMember(Name = "mydate")]
    private string MyDateISO;

    [OnSerializing]
    public void OnSerializing(StreamingContext context)
    {
        this.MyDateISO = this.MyDate.ToString("o"); //Convert date string to ISO 8601
    }
}