Jakiego formatu używam dla daty / godziny podczas zapisywania do pliku XML przy użyciu platformy .NET? Czy po prostu używam DateTime.ToString()
, czy muszę używać określonego formatu?
Zawsze używam formatu ISO 8601 (np. 2008-10-31T15:07:38.6875000-05:00
) - date.ToString("o")
. Jest to również format daty XSD . Jest to preferowany format i ciąg standardowego formatu daty i godziny , chociaż w razie potrzeby możesz użyć ręcznego ciągu formatu, jeśli nie chcesz, aby `` T '' między datą i godziną:date.ToString("yyyy-MM-dd HH:mm:ss");
EDYCJA: Jeśli używasz wygenerowanej klasy z XSD lub usługi sieci Web, możesz po prostu przypisać wystąpienie DateTime bezpośrednio do właściwości klasy. Jeśli piszesz tekst XML, użyj powyższego.
EDYCJA: To zła rada. Użyj „o”, jak wyżej. „s” robi złą rzecz .
Zawsze używam tego:
dateTime.ToUniversalTime().ToString("s");
To jest poprawne, jeśli twój schemat wygląda tak:
<xs:element name="startdate" type="xs:dateTime"/>
Co spowodowałoby:
<startdate>2002-05-30T09:00:00</startdate>
Więcej informacji można znaleźć tutaj: http://www.w3schools.com/xml/schema_dtypes_date.asp
Jeśli ręcznie składasz ciąg XML, użyj polecenia
var.ToUniversalTime().ToString("yyyy-MM-dd'T'HH:mm:ss.fffffffZ"));
To wyświetli oficjalny format daty i godziny XML. Ale nie musisz martwić się o format, jeśli używasz wbudowanych metod serializacji.źródło
Co ma do powiedzenia DTD?
Jeśli plik XML służy do komunikacji z innym istniejącym oprogramowaniem (np. SOAP), sprawdź, czego oczekuje od tego oprogramowania.
Jeśli plik XML jest przeznaczony do serializacji lub komunikacji z nieistniejącym oprogramowaniem (np. Tym, który piszesz), możesz go zdefiniować. W takim przypadku zasugerowałbym coś, co jest zarówno łatwe do przeanalizowania w wybranym przez ciebie języku (językach), jak i łatwe do odczytania dla ludzi. np. jeśli Twój język (czy to VB.NET, C # .NET czy jakikolwiek inny) pozwala na łatwe analizowanie dat ISO (RRRR-MM-DD), to proponuję.
źródło
XmlConvert
Klasa zapewnia tego rodzaju obiektów. W szczególności w przypadku daty i godziny należy uważać na przestarzałe metody. Zobacz też: https://stackoverflow.com/a/7457718/1288109źródło