Строка '3/18/09 10:16 PM' не является допустимым значением AllXsd
Очевидно, читателю не нравится этот формат, поступающий из XML-ответа.
Интересно, могу ли я переформатировать это. Попытка конвертировать в DateTime с помощью следующего кода с моим XmlReader:
reader.ReadContentAsDateTime();
Ответ 1
Читатели Xml обычно ожидают даты/время в очень специфическом формате; вы можете использовать это самостоятельно, используя XmlConvert:
string s = XmlConvert.ToString(DateTime.Now);
DateTime when = XmlConvert.ToDateTime(s);
Если вы используете что-то еще, вам нужно будет прочитать его как строку и использовать DateTime.TryParseExact (или аналогичный), чтобы указать фактическую строку формата:
string s = reader.ReadContentAsString();
DateTime when = DateTime.ParseExact(s, "M/d/yy hh:mm tt",
CultureInfo.InvariantCulture);
Если вы используете XmlSerializer, вы можете использовать свойство shim для преобразования - сообщите мне, если это то, что вы делаете...
Ответ 2
В соответствии с спецификацией XML schema значения даты должны быть в формате ISO8601, например, что-то вроде