2012-02-12 30 views
7

प्राप्त करने के लिए दिनांक स्ट्रिंग को पार्स करना मेरे पास एक स्ट्रिंग वेरिएबल है जो "05/11/2010" जैसी तारीख संग्रहीत करता है।वर्ष

मैं केवल वर्ष प्राप्त करने के लिए स्ट्रिंग को कैसे पार्स कर सकता हूं?

तो मेरे पास year = 2010 जैसे एक और वर्ष परिवर्तक होगा।

उत्तर

19

आप जो एक Year Property एक DateTime मूल्य के लिए स्ट्रिंग पार्स करने DateTime.Parse Method उपयोग कर सकते हैं:

:

var result = DateTime.Parse("05/11/2010").Year; 
// result == 2010 

ऑपरेटिंग सिस्टम की संस्कृति सेटिंग के आधार पर, आप एक CultureInfo प्रदान करने के लिए आवश्यकता हो सकती है

var result = DateTime.Parse("05/11/2010", new CultureInfo("en-US")).Year; 
// result == 2010 
9

यह आपके लिए काम करना चाहिए।

string myDate = "05/11/2010"; 
DateTime date = Convert.ToDateTime(myDate); 
int year = date.Year; 
+0

क्षमा करें, लेकिन 'डेटटाइम' वर्ग का ऐसा कन्स्ट्रक्टर मौजूद नहीं है। –

+0

@ सर्ज आप सही दिखते हैं। पोस्ट करने से पहले मुझे देर से सोचने और पुष्टि करने की कोशिश करने के लिए जो कुछ मिलता है, वह करता है। : पी –

+2

मैं संस्कृति निर्दिष्ट किए बिना पार्सिंग से बचूंगा। – CodesInChaos

4

दिनांक स्ट्रिंग प्रारूप तय हो गई है, तो (दिन/माह/वर्ष), मैं तुम्हें DateTime.ParseExact Method उपयोग करने की अनुशंसा करना चाहते हैं।

कोड:

const string dateString = "12/02/2012"; 
CultureInfo provider = CultureInfo.InvariantCulture; 
// Use the invariant culture for the provider parameter, 
// because of custom format pattern. 
DateTime dateTime = DateTime.ParseExact(dateString, "dd/MM/yyyy", provider); 
Console.WriteLine(dateTime); 

इसके अलावा, मैं, यह DateTime.Parse Method से एक छोटा सा तेजी से हो सकता है लगता है क्योंकि पार्स विधि तिथि-समय स्ट्रिंग के कई अभ्यावेदन पार्स करने की कोशिश करता है।

2

आप भी Regex इस्तेमाल किया स्ट्रिंग में साल प्राप्त करने के लिए "2010/05/11" DTB की

public string getYear(string str) 
{ 
    return (string)Regex.Match(str, @"\d{4}").Value; 
} 

var result = getYear("05/11/2010"); 

2010 
+1

यह मेरे फोन नंबर के पहले 4 अंकों से भी मेल खाता है, और किसी कारण से साल को एक स्ट्रिंग के रूप में लौटाता है। – john

+2

निश्चित रूप से, लेकिन अगर प्रश्न केवल तारीख प्रारूप में यह काम करेगा। –

0

संस्करण है कि मैं इस्तेमाल कर सकते हैं:

string Year = DateTime.Parse(DateTime.Now.ToString()).Year.ToString(); 
संबंधित मुद्दे