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