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