2013-05-02 7 views
5

parseLocalDate के लिए API कहता है कि यह UnsupportedOperationException फेंक देगा "अगर पार्सिंग समर्थित नहीं है"। 'अगर पार्सिंग समर्थित नहीं है' का क्या अर्थ है? मैं स्रोत के माध्यम से देख रहा हूं और UnsupportedOperationException फेंकने वाले कहीं भी नहीं ढूंढ सकता। क्या कभी भी किसी परिदृश्य में रहा है जहां यह अपवाद parseLocalDate पर कॉल करने से फेंक दिया गया था?DateTimeFormatter.parseLocalDate UnsupportedOperationException

उत्तर

5

DateTimeFormatter दो प्रयोगों है:

  • प्रिंट दिनांकों;
  • पार्स तिथियां;

जब आप DateTimeFormatter instance बनाते हैं, तो आप इसे DateTimePrinter और DateTimeParser लिए गुजरती हैं।

अपने फ़ॉर्मेटर केवल प्रिंटर है, और आप तिथि को पार्स चाहते हैं - UnsupportedOperationException फेंक दिया जाएगा।

अपने फ़ॉर्मेटर केवल पार्सर है, और आप प्रिंट चाहते तारीख है - UnsupportedOperationException फेंक दिया जाएगा।

उदाहरण

DateTimeFormatter formatter = new DateTimeFormatter(new DateTimePrinter() 
    { 
    // implements all abstract methods   
    }, null); // this instance has printer and hasn't parser 
    formatter.print(new DateTime()); // works well 
    formatter.parseDateTime("datetimestring"); // throws exeption 
+0

आह अच्छा पता करने के लिए, धन्यवाद। ऐसा लगता है कि 'org.joda.time.format.DateTimeFormat.forPattern (स्ट्रिंग) 'हमेशा प्रिंटर और एक पार्सर दोनों के साथ' डेटटाइमफॉर्मेटर 'वापस कर देगा; तो 'forPattern' के माध्यम से पुनर्प्राप्त 'डेटटाइमफॉर्मेटर' को कभी भी 'असमर्थित ऑपरेशन अपवाद' सही नहीं फेंकना चाहिए? – FGreg

+1

@FGreg हां, यह सच है – Ilya

+2

इसके अलावा, ध्यान दें कि दो समान उदाहरण विधियां हैं: 'ISODateTimeFormat.dateTime()' और 'ISODateTimeFormat.dateTimeParser()'। यदि आप बाद वाले का उपयोग करते हैं और '.format (dateTime)' के लिए प्रयास करते हैं, तो आपको यह अपवाद मिलता है। – membersound

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