2009-04-15 4 views
7

मेरा लक्ष्य .NET डेटटाइम ऑब्जेक्ट (सी # में) का उपयोग करता है और इसे एक स्ट्रिंग (एक्सएमएल में उपयोग के लिए) से क्रमबद्ध और पार्स किया जाता है यह मानक अनुरूप है। मेरे पास दिमाग में विशिष्ट मानक दिनांक और समय का प्रतिनिधित्व करने के लिए आईएसओ 8601 मानक है।मैं मानक मानकों में .NET में डेटटाइम ऑब्जेक्ट्स को क्रमबद्ध कैसे करता हूं

मुझे समाधान का उपयोग करना आसान है (अधिमानतः, प्रत्येक विधि एक विधि कॉल) जो स्वरूप के समेकित संस्करण में और उससे कनवर्ट होगा। मैं स्थानीय समय क्षेत्र की जानकारी को भी संरक्षित करना चाहता हूं।

यहाँ स्ट्रिंग की तरह का एक उदाहरण मैं प्राप्त करना चाहते हैं क्या है:

2009-04-15T10: 55: 03.0174-05: 00

मेरे लक्ष्य नेट संस्करण 3.5 है।

मुझे वास्तव में कई वर्षों पहले इस समस्या का हल मिला, जिसमें एक कस्टम प्रारूप और डेटटाइम शामिल है। टॉस्ट्रिंग (स्ट्रिंग) विधि। मुझे आश्चर्य हुआ कि एक सरल मानक अनुपालन समाधान मौजूद नहीं था। मानक मानकों में क्रमबद्ध करने और विश्लेषण करने के लिए एक कस्टम प्रारूप स्ट्रिंग का उपयोग करना मेरे लिए थोड़ा गंध करता है।

उत्तर

15

सौभाग्य से, XmlConvert.ToString() और XmlConvert.ToDateTime() है जो इस प्रारूप संभालता है:

string s = XmlConvert.ToString(DateTime.Now, 
    XmlDateTimeSerializationMode.Local); 
DateTime dt = XmlConvert.ToDateTime(s, 
    XmlDateTimeSerializationMode.Local); 

(अपने उचित क्रमबद्धता मोड लेने)

+0

आप पुराने टाइमर के साथ deserialized किया जा सकता है मिल जाएगा ड्रॉ पर तुरंत यकीन है। :-) –

+1

पुराने टाइमर !!?? ;- संदिग्ध snort .... मेरे दिन में ... –

3

इसमें .NET तरह लग रहा है अतीत से अधिक इस संबंध में एक छोटे से सुधार हुआ है कुछ साल। System.Xml.XmlConvert ऑब्जेक्ट को इस संदर्भ में दिखाई देने वाली आवश्यकताओं की पूरी कक्षा को संबोधित करने के लिए डिज़ाइन किया गया प्रतीत होता है। निम्नलिखित कार्यों को विशेष रूप से डेटटाइम ऑब्जेक्ट्स के लचीले और मानकों के अनुरूप तरीके से बदलने के लिए डिज़ाइन किया गया प्रतीत होता है।

System.Xml.XmlDateTimeSerializationMode.RoundtripKind 

यहाँ MSDN पर कार्यों के लिए प्रलेखन के लिए लिंक:

XmlConvert.ToDateTime(string, System.Xml.XmlDateTimeSerializationMode) 


XmlConvert.ToString(DateTime, System.Xml.XmlDateTimeSerializationMode) 

निम्नलिखित गणन सदस्य मामला है कि आप मूल समय क्षेत्र जानकारी सुरक्षित रखना चाहते हैं में विशेष रूप से उपयोगी लगता है XmlConvert.ToDateTime(string, System.Xml.XmlDateTimeSerializationMode)

XmlConvert.ToString(DateTime, System.Xml.XmlDateTimeSerializationMode)

1

इस प्रयास करें:

System.Xml.XmlConvert.ToString(TimeStamp, System.Xml.XmlDateTimeSerializationMode.Utc)) 
4

dateobj.ToString ("एस") आप एक आईएसओ 8601 अनुरूप स्ट्रिंग प्रतिनिधित्व है, जो तब DateTime.Parse()

संबंधित मुद्दे