Я всегда использую формат ISO 8601 (например, 2008-10-31T15:07:38.6875000-05:00
) - date.ToString("o")
. Это формат даты XSD также. Это - предпочтительный формат и Стандартная Строка формата Даты и времени , хотя можно использовать ручную строку формата при необходимости, если Вы не хотите 'T' между датой и временем: date.ToString("yyyy-MM-dd HH:mm:ss");
РЕДАКТИРОВАНИЕ: при использовании сгенерированного класса от XSD или веб-сервиса можно просто присвоить экземпляр DateTime непосредственно свойству класса. Если Вы пишете текст XML, то используйте вышеупомянутое.
РЕДАКТИРОВАНИЕ: Это - плохой совет. Используйте "o", как выше. "s" делает неправильная вещь .
я всегда использую это:
dateTime.ToUniversalTime().ToString("s");
Это корректно, если Ваша схема похожа на это:
<xs:element name="startdate" type="xs:dateTime"/>
, Который привел бы к:
<startdate>2002-05-30T09:00:00</startdate>
можно получить больше информации здесь: http://www.w3schools.com/xml/schema_dtypes_date.asp
Если Вы вручную собираете строковое использование XML var.ToUniversalTime().ToString("yyyy-MM-dd'T'HH:mm:ss.fffffffZ"));
, Который произведет официальный Формат даты/времени XML. Но Вы не должны волноваться о формате при использовании встроенных методов сериализации.
Что должен сказать DTD?
, Если XML-файл для связи с другим существующим программным обеспечением (например, SOAP), то проверяют, что программное обеспечение для того, что это ожидает.
, Если XML-файл для сериализации или связи с несуществующим программным обеспечением (например, тот Вы пишете), можно определить его. В этом случае я предложил бы что-то, что и легко проанализировать на Вашем предпочтительном языке (языках), и легкий читать для людей. например, если Ваш язык (или VB.NET или C#.NET или безотносительно) позволяет Вам анализировать даты ISO (YYYY-MM-DD) легко, это - то, которое я предложил бы.