दिनांक स्ट्रिंग को java.util.Date पर पार्स करते समय अवैध पैटर्न कैरेक्टर 'T'
दिनांक स्ट्रिंग को java.util पर पार्स करना। दिनांक ऑब्जेक्ट के लिए एक पैटर्न की आवश्यकता होती है जो विशिष्ट नियमों का पालन करता हो। एक सामान्य पैटर्न "yyyy-MM-ddThh:mm:ssZ" है, जो आईएसओ 8601 प्रारूप में तारीखों का प्रतिनिधित्व करता है।
समस्या:
निर्दिष्ट पैटर्न का उपयोग करते समय, एक अपवाद है संदेश के साथ फेंका गया "java.lang.IllegalArgumentException: अवैध पैटर्न कैरेक्टर 'टी'।"
कारण:
पैटर्न में 'टी' दिनांक और समय घटकों के बीच एक विभाजक का प्रतिनिधित्व करता है। हालाँकि, जावा के SimpleDateFormat में, 'T' अक्षर को सही ढंग से पहचानने के लिए दोनों तरफ सिंगल कोट्स के साथ बचना होगा।
समाधान 1: पैटर्न में 'T' से बचें
मूल पैटर्न का उपयोग करके समस्या को हल करने के लिए, 'टी' वर्ण से इस प्रकार बचें:
String pattern = "yyyy-MM-dd'T'hh:mm:ssZ";
समाधान 2: ISO_8601_24H_FULL_FORMAT
वैकल्पिक रूप से, आप द्वारा प्रदान किए गए पूर्व-परिभाषित ISO_8601_24H_FULL_FORMAT स्थिरांक का उपयोग कर सकते हैं Q2597083 वर्ग:
String pattern = Q2597083.ISO_8601_24H_FULL_FORMAT;
जावा 8 और उच्चतर के लिए:
जावा 8 और उससे ऊपर के लिए, DateTimeFormatter वर्ग का उपयोग करने की अनुशंसा की जाती है SimpleDateFormat के बजाय और Date के बजाय Instant। यहाँ एक उदाहरण है:
import java.time.Instant; import java.time.format.DateTimeFormatter; String dateString = "2010-10-02T12:23:23Z"; DateTimeFormatter formatter = DateTimeFormatter.ISO_DATE_TIME; Instant d = Instant.parse(dateString); System.out.println(d.getYear());
इन समाधानों का उपयोग करके, आप "अवैध पैटर्न वर्ण 'टी'" अपवाद का सामना किए बिना आईएसओ 8601 प्रारूप में दिनांक स्ट्रिंग को सफलतापूर्वक पार्स कर सकते हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3