Yanıtlar:
Ben her zaman ISO 8601 formatını kullanıyorum (örneğin 2008-10-31T15:07:38.6875000-05:00) - date.ToString("o"). Aynı zamanda XSD tarih formatıdır . Bu, tercih edilen biçim ve Standart Tarih ve Saat Biçimi dizesidir , ancak tarih ve saat arasında 'T' olmasını istemiyorsanız gerekirse bir manuel biçim dizesi de kullanabilirsiniz:date.ToString("yyyy-MM-dd HH:mm:ss");
DÜZENLEME: Bir XSD veya Web Hizmetinden oluşturulmuş bir sınıfı kullanıyorsanız, DateTime örneğini doğrudan sınıf özelliğine atayabilirsiniz. XML metni yazıyorsanız, yukarıdakileri kullanın.
DÜZENLEME: Bu kötü bir tavsiye. Yukarıdaki gibi "o" kullanın. "s" yanlış şeyi yapıyor .
Ben her zaman şunu kullanırım:
dateTime.ToUniversalTime().ToString("s");
Şemanız şöyle görünüyorsa bu doğrudur:
<xs:element name="startdate" type="xs:dateTime"/>
Bunun sonucu:
<startdate>2002-05-30T09:00:00</startdate>
Buradan daha fazla bilgi edinebilirsiniz: http://www.w3schools.com/xml/schema_dtypes_date.asp
XML dizesini manuel olarak birleştiriyorsanız, var.ToUniversalTime().ToString("yyyy-MM-dd'T'HH:mm:ss.fffffffZ")); That öğesini kullanın. Bu, resmi XML Tarih Saat biçimini verir. Ancak yerleşik serileştirme yöntemlerini kullanıyorsanız format konusunda endişelenmenize gerek yok.
DTD'nin söylemesi gereken nedir?
XML dosyası diğer mevcut yazılımlarla (örn., SOAP) iletişim kurmak içinse, o yazılımın beklediğini kontrol edin.
XML dosyası mevcut olmayan bir yazılımla (örneğin yazdığınız yazılım) serileştirme veya iletişim için ise, onu tanımlayabilirsiniz. Bu durumda, hem seçtiğiniz dil (ler) de ayrıştırılması kolay hem de insanlar için okunması kolay bir şey öneririm. Örneğin, diliniz (VB.NET veya C # .NET veya her neyse) ISO tarihlerini (YYYY-AA-GG) kolayca ayrıştırmanıza izin veriyorsa, bunu önereceğim.
XmlConvertSınıf tesisleri bu tür sağlar. Özellikle DateTimes hakkında eski yöntemler konusunda dikkatli olun. Ayrıca bkz .: https://stackoverflow.com/a/7457718/1288109