Вам нечего делать, просто объявите свойство как DateTime
.XmlSerializer автоматически преобразует его в строку типа 2012-03-27T16:21:12.8135895+02:00
Если вам нужно использовать определенный формат, вы должны использовать небольшой трюк ... Поместите атрибут [XmlIgnore]
в свойство DateTime
и добавьте новое строковое свойство, которое обрабатывает форматирование:
[XmlIgnore]
public DateTime startDate { get;set;}
private const string DateTimeFormat = "ddd, dd MMM yyyy HH:mm:ss";
[XmlElement("startDate")]
[EditorBrowsable(EditorBrowsableState.Never)]
public string startDateXml
{
get { return startDate.ToString(DateTimeFormat, CultureInfo.InvariantCulture); }
set { startDate = DateTime.ParseExact(value, DateTimeFormat, CultureInfo.InvariantCulture); }
}
(атрибут [EditorBrowsable]
предназначен для того, чтобы не отображать свойство в intellisense, поскольку оно полезно только для сериализации)