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?

Author: Dave Zych, 2008-10-31

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.

 122
Author: Ryan, 2017-07-12 19:18:33

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

 39
Author: jonnii, 2016-12-05 18:36:15

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.

 4
Author: chilltemp, 2013-08-15 22:19:16
O que é que o DTD tem a dizer?

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.

 3
Author: Tanktalus, 2008-10-31 20:01:41

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

 0
Author: Starnuto di topo, 2017-05-23 12:17:59