2010-02-10 15 views
14

यदि मेरे पास YYYY##MM##DD HH**M**SS जैसे अजीब प्रारूप में डेटाटाइम स्ट्रिंग है, तो मैं उस पर एक नया डेटाटाइम ऑब्जेक्ट बेस कैसे बना सकता हूं? मैंने डेटाटाइमेटैटिनफोक्लस के बारे में कुछ पढ़ा है लेकिन यह सुनिश्चित नहीं है कि यह कैसे काम कर रहा है ..अजीब प्रारूप से सी # में पार्स डेटटाइम

उत्तर

26

आप जो आप में विश्वास नहीं कर रहे हैं डेटा के लिए DateTime.ParseExact, या DateTime.TryParseExact उपयोग कर सकते हैं उदाहरण के लिए:

using System; 

class Test 
{ 
    static void Main() 
    { 
     string formatString = "yyyy'##'MM'##'dd' 'HH'*'mm'*'ss"; 
     string sampleData = "2010##02##10 07*22*15"; 
     Console.WriteLine(DateTime.ParseExact(sampleData, 
               formatString, 
               null)); 
    } 
} 
प्रारूप स्ट्रिंग में उद्धरण

सख्ती से आवश्यक नहीं हैं - यह काम करेगा। भी:

string formatString = "yyyy##MM##dd HH*mm*ss"; 

हालांकि, उद्धरण का उपयोग कर मतलब है कि आप स्पष्ट किया जा रहा है कर रहे हैं कि उद्धरण के बीच वर्ण सचमुच प्रयोग की जाने वाली है, और पैटर्न पात्रों के रूप में समझा नहीं हैं - तो आप बदल अगर "#" के लिए "/" कोट्स का उपयोग करने वाला संस्करण निश्चित रूप से "/" का उपयोग करेगा जबकि वें एक संस्कृति-विशिष्ट मूल्य का उपयोग किए बिना rsion।

null कॉल में ParseExact करने का अर्थ है "वर्तमान संस्कृति का उपयोग करें" - इस मामले में यह बहुत फर्क पड़ता है की संभावना नहीं है, लेकिन एक आम तौर पर उपयोगी विकल्प CultureInfo.InvariantCulture है।

यह दुर्भाग्यपूर्ण है कि बीसीएल को प्रारूप स्ट्रिंग को पार्स करने और जानकारी को बनाए रखने का कोई तरीका नहीं है; मेरा खुद का Noda Time प्रोजेक्ट इस स्थिति को सुधारता है, और मुझे उम्मीद है कि यह पार्सिंग और बहुत तेजी से स्वरूपण कर देगा - लेकिन इस समय उत्पादन-तैयार से बहुत दूर है।

+2

http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx में प्रासंगिक पार्सिंग है, यदि आप अपना स्वयं का प्रारूप प्रदान कर रहे हैं – Tanzelax

7

आप DateTime.ParseExact विधि का उपयोग कर सकते हैं और आपको जिस प्रारूप की आवश्यकता है उसे पास कर सकते हैं।

+0

'स्ट्रिंग' को' डेटटाइम 'पर पार्स करने का यह सबसे प्रभावी तरीका है। 'पर्स()' और '। ट्राईपर्स()' के साथ पार्सिंग प्रारूप प्रारूप के बिना f..ing बहुत धीमी गति से! –

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