Каков правильный формат для использования даты / времени в XML-файле


какой формат я использую для даты / времени при записи в XML-файл с помощью .NET? я просто использую DateTime.ToString(), или мне нужно использовать определенный формат?

5 87

5 ответов:

Я всегда использую 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-текст, то используйте выше.

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 (YYYY-MM-DD), это тот, который я бы предложил.

на XmlConvert класс обеспечивает эти виды объектов. О датах, в частности, будьте осторожны с устаревшими методами. См. также: https://stackoverflow.com/a/7457718/1288109