2010-04-01 15 views
37

मेरे पास अगले प्रारूप "ORDER20100322194007" की एक स्ट्रिंग है, जहां 20100322 एक तिथि है और 194007 एक समय है। एक स्ट्रिंग का विश्लेषण कैसे करें और DateTime ऑब्जेक्ट को निहित करें?एक कस्टम प्रारूप में दिनांक और समय वाली स्ट्रिंग को पार्स करें

+1

एक अच्छा सवाल है। हो सकता है कि आपको शीर्षक को ".NET में कस्टम दिनांक प्रारूप की डेटटाइम पार्सिंग" जैसे कुछ बदलना चाहिए –

+0

ठीक है, मैं आपसे सहमत हूं। – akrisanov

उत्तर

76

क्या यह हमेशा ORDER से शुरू होगा?

string pattern = "'ORDER'yyyyMMddHHmmss"; 
DateTime dt; 
if (DateTime.TryParseExact(text, pattern, CultureInfo.InvariantCulture, 
          DateTimeStyles.None, 
          out dt)) 
{ 
    // dt is the parsed value 
} 
else 
{ 
    // Invalid string 
} 

स्ट्रिंग अमान्य किया जा रहा है एक अपवाद फेंक देना चाहिए, तो DateTime.TryParseExact

के बजाय DateTime.ParseExact का उपयोग करते हैं तो यह हमेशा जो कुछ भी आप क्रम में की जरूरत है सिर्फ पाने के लिए क्या "आदेश" के साथ शुरू नहीं होता है तिथि और समय भाग, और उपरोक्त प्रारूप पैटर्न से "ऑर्डर" को हटा दें।

8

आप पार्सिंग के दौरान उपयोग किए जाने वाले प्रारूप को निर्दिष्ट करने के लिए DateTime.ParseExact विधि का उपयोग कर सकते हैं।

1

यदि आपके पास अपनी स्ट्रिंग की एक निश्चित संरचना नहीं है तो ऑर्डर हमेशा नहीं रहेगा, तो आप संख्याओं और अक्षरों को अलग करने के लिए रेगेक्स का उपयोग कर सकते हैं और फिर अलग-अलग संख्याओं के लिए डेटाटाइम फ़ंक्शन में कनवर्ट कर सकते हैं।

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