XML फ़ाइल में दिनांक / समय का उपयोग करने के लिए सही प्रारूप क्या है


98

.NET का उपयोग करके XML फ़ाइल में लिखते समय मैं दिनांक / समय के लिए किस प्रारूप का उपयोग करता हूं? क्या मैं बस उपयोग DateTime.ToString()करता हूं, या क्या मुझे एक विशिष्ट प्रारूप का उपयोग करना है?

जवाबों:


138

मैं हमेशा आईएसओ 8601 प्रारूप (जैसे 2008-10-31T15:07:38.6875000-05:00) का उपयोग करता हूं - date.ToString("o")। यह XSD तिथि प्रारूप भी है। यह पसंदीदा प्रारूप और एक मानक दिनांक और समय प्रारूप स्ट्रिंग है , हालांकि यदि आप तिथि और समय के बीच 'टी' नहीं चाहते हैं तो आप एक मैनुअल प्रारूप स्ट्रिंग का उपयोग कर सकते हैं:date.ToString("yyyy-MM-dd HH:mm:ss");

संपादित करें: यदि आप एक एक्सएसडी या वेब सेवा से उत्पन्न वर्ग का उपयोग कर रहे हैं, तो आप सीधे कक्षा संपत्ति को डेटटाइम उदाहरण दे सकते हैं। यदि आप XML टेक्स्ट लिख रहे हैं, तो उपरोक्त का उपयोग करें।


44

EDIT: यह बुरी सलाह है। "ओ" का उपयोग करें, जैसा कि ऊपर। "s" गलत काम करता है

मैं हमेशा इसका उपयोग करता हूं:

dateTime.ToUniversalTime().ToString("s");

यदि आपका स्कीमा इस तरह दिखता है तो यह सही है:

<xs:element name="startdate" type="xs:dateTime"/>

जिसके परिणामस्वरूप होगा:

<startdate>2002-05-30T09:00:00</startdate>

आप यहाँ अधिक जानकारी प्राप्त कर सकते हैं: http://www.w3schools.com/xml/schema_dtypes_date/asp


10
ध्यान रखें कि यह UTC को दिनांक परिवर्तित करता है। जब आप दिनांक संसाधित करते हैं, तो आपको इसे लोकेल के आधार पर अपने वर्तमान समयक्षेत्र में वापस बदलना होगा (जब तक कि आप यूटीसी में सब कुछ संसाधित नहीं कर रहे हैं)। इसके अलावा, आमतौर पर आप UTC की तारीख को दर्शाने के लिए अंत में एक 'Z' डालेंगे।
रयान

साबुन यूई से एक .net वेब सेवा कॉल करते समय "s" मेरे लिए काम करता है।
ट्रिस्टन चैनिंग

4

यदि आप मैन्युअल रूप से XML स्ट्रिंग का उपयोग कर रहे हैं, तो var.ToUniversalTime().ToString("yyyy-MM-dd'T'HH:mm:ss.fffffffZ")); यह आधिकारिक XML दिनांक समय प्रारूप को आउटपुट करेगा। लेकिन आपको प्रारूप के बारे में चिंता करने की ज़रूरत नहीं है यदि आप अंतर्निहित क्रमांकन विधियों का उपयोग करते हैं।


jonnii का मूल परिणाम समान रूप से वापस आएगा।
चिल्टपम्प

3
इस स्थिति में सभी तिथियां UTC समय क्षेत्र में होनी चाहिए अन्यथा "Z" प्रत्यय का उपयोग गलत है।
Fr0sT

मैं पूर्व टिप्पणी दोहराऊंगा - यह वास्तव में गलत है यदि dt utc नहीं है।
ब्रैडी मॉरिट्स

3

DTD का क्या कहना है?

यदि XML फ़ाइल अन्य मौजूदा सॉफ़्टवेयर (जैसे, SOAP) के साथ संचार करने के लिए है, तो उस सॉफ़्टवेयर की जाँच करें जो यह अपेक्षा करता है।

यदि XML फ़ाइल गैर-मौजूदा सॉफ़्टवेयर के साथ क्रमांकन या संचार के लिए है (जैसे, आप जो लिख रहे हैं), आप इसे परिभाषित कर सकते हैं। किस मामले में, मैं कुछ सुझाव दूंगा जो आपकी पसंद की भाषा (भाषा) में पार्स करने के लिए आसान है, और मनुष्यों के लिए पढ़ने में आसान है। उदाहरण के लिए, यदि आपकी भाषा (चाहे VB.NET या C # .NET या जो भी हो) आपको ISO तिथियों (YYYY-MM-DD) को आसानी से पार्स करने की अनुमति देती है, तो मैं यही सुझाव दूंगा।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.