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

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

Ответ 1

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

Ответ 2

РЕДАКТОР: Это плохой совет. Используйте "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

Ответ 3

Если вы вручную собрали строку XML, используйте var.ToUniversalTime().ToString("yyyy-MM-dd'T'HH:mm:ss.fffffffZ"));, который выведет официальный формат даты XML. Но вам не нужно беспокоиться о формате, если вы используете встроенные методы сериализации.

Ответ 4

Что говорит DTD?

Если XML файл предназначен для связи с другим существующим программным обеспечением (например, SOAP), тогда проверьте это программное обеспечение на то, что он ожидает.

Если файл XML предназначен для сериализации или связи с несуществующим программным обеспечением (например, тот, который вы пишете), вы можете определить его. В этом случае я предлагаю то, что легко анализировать на выбранном вами языке (ов) и легко читается для людей. например, если ваш язык (будь то VB.NET или С#.NET или что-то еще) позволяет легко анализировать даты ISO (YYYY-MM-DD), что я бы предложил.

Ответ 5

Класс XmlConvert предоставляет такие возможности. В отношении DateTimes, в частности, будьте осторожны с устаревшими методами. См. Также: fooobar.com/info/66487/...