दुर्भाग्य fmt.setLenient (गलत); सख्त तारीख स्वरूपण प्राप्त नहीं करेगा। यह कुछ मदद करता है उदाहरण के पार्स करने के लिए "2010-09-01" प्रारूप का उपयोग "YYYYMMDD" सफल होगा अगर उदार == सच है, लेकिन परिणाम बहुत विचित्र है: 2009/12/09।
यहां तक कि अगर उदार == झूठी पार्स() अभी भी उदार कार्य करता है। "Yyyy/MM/dd" पैटर्न के लिए "2010/01/5" की अनुमति है। और "yyyy/yyyy" पैटर्न के लिए "1999/2011" जैसे डेटा असहमति को सहन किया जाता है (2011 को प्रस्तुत करना)। पैटर्न मैच के बाद कचरा भी अनुमति है। उदाहरण के लिए: "20100901" और "20100901andGarbage" दोनों "yyyyMMdd" से मेल खाते हैं।
मैं SimpleDateFormat का ही विस्तार है कि सख्त पैटर्न मिलान लागू करता है लिखा है।)
SimpleDateFormat.parse() ignores the number of characters in pattern
मेरी संस्करण स्वरूप में() और पार्स (कार्यात्मक प्रतिलोम हैं: आप इसे यहाँ पा सकते हैं। यही वह है जो मुझे लगता है कि ज्यादातर लोग उम्मीद करेंगे।
स्रोत
2016-02-05 20:07:51
यह आपकी समस्या का समाधान हो सकता है या नहीं भी हो सकता है, लेकिन यदि आप जावा में तिथियों से निपट रहे हैं, तो मैं जोर से जोर देता हूं कि जोडा टाइम लाइब्रेरी – Eduardo