Відповіді:
Я завжди використовую формат ISO 8601 (наприклад 2008-10-31T15:07:38.6875000-05:00) - date.ToString("o"). Це також формат дати XSD . Це кращий формат і стандартний рядок дати та часу , хоча ви можете використовувати рядок ручного формату, якщо необхідно, якщо ви не хочете "T" між датою та часом:date.ToString("yyyy-MM-dd HH:mm:ss");
EDIT: Якщо ви використовуєте згенерований клас із XSD або веб-служби, ви можете просто призначити екземпляр DateTime безпосередньо властивості класу. Якщо ви пишете XML-текст, то скористайтеся описаним вище.
EDIT: Це погана порада. Використовуйте "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 (РРРР-MM-DD), це я б запропонував.
XmlConvertКлас надає наступні види об'єктів. Про DateTimes, зокрема, будьте уважні щодо застарілих методів. Дивіться також: https://stackoverflow.com/a/7457718/1288109