2011-04-28 16 views
7

मैं निम्नलिखित के रूप में एक बाहरी प्रणाली से एक तिथि-समय स्टाम्प पार्स करने के लिए प्रयास करें:TryParse विशेष तिथि प्रारूप

DateTime expiration; 
DateTime.TryParse("2011-04-28T14:00:00", out expiration); 

दुर्भाग्य से यह मान्यता प्राप्त नहीं है। मैं इसे सफलतापूर्वक कैसे पार्स कर सकता हूं?

sl3dg3

+0

आवश्यक प्रारूप निर्दिष्ट करके दिनांक समय TryParseExact() का प्रयास करें –

उत्तर

11

सटीक प्रारूप आप चाहते हैं निर्दिष्ट करें DateTime.TryParseExact में

DateTime dateValue; 

if (DateTime.TryParseExact(dateString, "yyyy-MM-ddTHH:mm:ss", 
           new CultureInfo("en-US"), 
           DateTimeStyles.None, 
           out dateValue)) 
{ 
    // Do Something .. 
} 

DateTime बारे में पढ़ें।

+0

आईएमओ स्वच्छ समाधान, thx! – sl3dg3

+2

मैंने कभी भी 'TryParseExact' का उपयोग किया है। यदि कंप्यूटर कंप्यूटर (गैसपी) यूएस सेटिंग्स पर हो सकता है तो आप वास्तव में 'TryParse' पर भरोसा नहीं कर सकते हैं। – configurator

+0

+1 मुझे पता है कि यह पुराना है लेकिन अभी भी उपयोगी है - धन्यवाद! – twoleggedhorse

2

"टी" का उपयोग किए बिना इस

DateTime expiration; 
DateTime.TryParse("2011-04-28 14:00:00", out expiration); 

की कोशिश करो।

+0

इनपुट मान को बदलना (जिसे कहीं और आपूर्ति की जाती है) लगभग उतना ही अच्छा समाधान नहीं है जितना कि आप अनुमानित प्रारूप, आईएमओ से मिलान करने के लिए कैसे विश्लेषण करते हैं। –

1

आपको अपनी स्ट्रिंग तर्क में "00000Z" संलग्न करने की आवश्यकता है। निम्नलिखित के रूप में

DateTime expiration; 

string text = "2011-04-28T14:00:00"; 
bool success = DateTime.TryParseExact(text, 
             "yyyy-MM-ddTHH:mm:ss", 
             CultureInfo.InvariantCulture, 
             DateTimeStyles.None, 
             out expiration); 
संबंधित मुद्दे