Format apa yang saya gunakan untuk Tanggal / Waktu saat menulis ke file XML menggunakan .NET? Apakah saya hanya menggunakan DateTime.ToString()
, atau haruskah saya menggunakan format tertentu?
Saya selalu menggunakan format ISO 8601 (misalnya 2008-10-31T15:07:38.6875000-05:00
) - date.ToString("o")
. Ini adalah format tanggal XSD juga. Itu adalah format yang disukai dan string Format Tanggal dan Waktu Standar , meskipun Anda dapat menggunakan string format manual jika perlu jika Anda tidak menginginkan 'T' di antara tanggal dan waktu:date.ToString("yyyy-MM-dd HH:mm:ss");
EDIT: Jika Anda menggunakan kelas yang dihasilkan dari XSD atau Layanan Web, Anda dapat menetapkan contoh DateTime langsung ke properti kelas. Jika Anda menulis teks XML, gunakan cara di atas.
EDIT: Ini adalah nasihat yang buruk. Gunakan "o", seperti di atas. "s" melakukan hal yang salah .
Saya selalu menggunakan ini:
dateTime.ToUniversalTime().ToString("s");
Ini benar jika skema Anda terlihat seperti ini:
<xs:element name="startdate" type="xs:dateTime"/>
Yang akan menghasilkan:
<startdate>2002-05-30T09:00:00</startdate>
Anda bisa mendapatkan informasi lebih lanjut di sini: http://www.w3schools.com/xml/schema_dtypes_date.asp
Jika Anda merakit secara manual menggunakan string XML
var.ToUniversalTime().ToString("yyyy-MM-dd'T'HH:mm:ss.fffffffZ"));
Yang akan menampilkan format Tanggal Waktu XML resmi. Tetapi Anda tidak perlu khawatir tentang format jika Anda menggunakan metode serialisasi bawaan.sumber
Apa yang DTD katakan?
Jika file XML adalah untuk berkomunikasi dengan perangkat lunak lain yang ada (misalnya, SOAP), maka periksa perangkat lunak itu untuk apa yang diharapkan.
Jika file XML adalah untuk serialisasi atau komunikasi dengan perangkat lunak yang tidak ada (misalnya, yang Anda tulis), Anda dapat menentukannya. Dalam hal ini, saya menyarankan sesuatu yang mudah diurai dalam bahasa pilihan Anda, dan mudah dibaca oleh manusia. misalnya, jika bahasa Anda (apakah VB.NET atau C # .NET atau apa pun) memungkinkan Anda untuk mengurai tanggal ISO (YYYY-MM-DD) dengan mudah, itulah yang saya sarankan.
sumber
The
XmlConvert
kelas menyediakan fasilitas jenis ini. Tentang DateTimes, khususnya, berhati-hatilah dengan metode usang. Lihat juga: https://stackoverflow.com/a/7457718/1288109sumber