Qual é o formato correto a usar para data / hora em um arquivo XML
que formato uso para a data / hora ao escrever num ficheiro XML com o. NET? Uso simplesmente o {[[0]}, ou tenho de usar um formato específico?
5 answers
Eu uso sempre o formato ISO 8601 (e.g. 2008-10-31T15:07:38.6875000-05:00
) -- date.ToString("o")
. É o XSD date format também. Este é o formato preferido e um texto padrão de data e hora , embora possa usar um texto de formato manual, se necessário, se não quiser o ' T ' entre a data e a hora: date.ToString("yyyy-MM-dd HH:mm:ss");
Editar: Se estiver a usar uma classe gerada a partir de um XSD ou serviço Web, pode simplesmente atribuir a instância DateTime directamente à propriedade da classe. Se está a escrever XML text, em seguida, use o acima.
Editar: este é um mau conselho. Usa "o", como em cima. "s" faz a coisa errada.
Uso sempre isto:
dateTime.ToUniversalTime().ToString("s");
Isto está correcto se o seu esquema se parece com isto:
<xs:element name="startdate" type="xs:dateTime"/>
O que resultaria em:
<startdate>2002-05-30T09:00:00</startdate>
Pode obter mais informações aqui: http://www.w3schools.com/xml/schema_dtypes_date.asp
Se estiver a montar manualmente o texto XML use var.ToUniversalTime().ToString("yyyy-MM-dd'T'HH:mm:ss.fffffffZ"));
que irá apresentar o formato oficial da data XML. Mas você não tem que se preocupar com o formato se você usar os métodos de serialização embutidos.
Se o ficheiro XML é para comunicar com outro software existente (por exemplo, SOAP), então verifique esse software para o que ele espera.
Se o ficheiro XML for para serialização ou comunicação com software não existente (por exemplo, o que está a escrever), pode defini-lo. Nesse caso, eu sugeriria algo que é ao mesmo tempo fácil de processar na(s) Sua (s) Língua (s) de escolha, e fácil de ler para os humanos. por exemplo, se a sua língua (se VB.NET ou C#.NET ou seja o que for) permite-lhe processar as datas ISO (AAAA-MM-DD) facilmente, é o que eu sugeriria.
A classe XmlConvert
fornece este tipo de instalações.
Sobre os dados, em particular, tenha cuidado com métodos obsoletos.
Ver também: https://stackoverflow.com/a/7457718/1288109