मेरे प्रश्न से संबंधित here - मैं pattern
स्ट्रिंग को DateTimeFormatter
दिए गए स्ट्रिंग को कैसे प्राप्त करूं?मूल पैटर्न प्राप्त करें स्ट्रिंग को जेडीके 8 डेटटाइमफॉर्मेटर दिया गया है?
उत्तर
यह on the mailing list से पूछा गया है और उत्तर यह है कि यह संभव नहीं है क्योंकि मूल पैटर्न को बनाए रखा नहीं गया है।
एक ही थ्रेड DateTimeFormatterBuilder
का उपयोग करने का सुझाव देता है जिसमें जानकारी है।
मुझे लगता है कि 'डेटटाइमफॉर्मेटरबिल्डर' स्थानीय प्रारूप बनाने की अनुमति देता है, लेकिन अगर मैं गलत नहीं हूं, तो 'डेटटाइमफॉर्मेटर' ऑब्जेक्ट बनाने के लिए उपयोग किए जाने वाले सटीक प्रारूप को बिल्कुल सही नहीं देता है। –
@ रोहितजैन शायद यह मामला है - जावाडोक मूल पैटर्न को वापस देने का वादा नहीं करता है। – assylias
यह आपके प्रश्न का सीधा जवाब नहीं हो सकता है लेकिन इससे मदद मिल सकती है।
आप यह कैसे फ़ॉर्मेटर निर्माण किया गया था आप स्थिर विधि कॉल कर सकते हैं के मापदंडों जानते हैं:
DateTimeFormatterBuilder.getLocalizedDateTimePattern(FormatStyle dateStyle, FormatStyle timeStyle, Chronology chrono, Locale locale)
यह आपको एक स्ट्रिंग के रूप में पैटर्न दे देंगे।
या अधिक सरल: '((SimpleDateFormat) DateFormat.getDateInstance (DateFormat.SHORT, Locale.FRENCH))। ToPattern()' – qwertzguy
एक सीधा या सुरुचिपूर्ण समाधान नहीं है, लेकिन DateTimeFormatter
की .toString()
विधि के परिणामों का उपयोग करके, संभवतः स्ट्रिंग को पार करने और मूल पैटर्न को पुनर्निर्मित करने वाला अपना कोड रोल करना संभव हो सकता है।
कुछ कोड है कि कुछ ही .toString()
परिणाम विभिन्न पैटर्न के लिए प्रिंट:
java.time.format.DateTimeFormatter variousFormatPatterns =
java.time.format.DateTimeFormatter.ofPattern("yy MM dd");
System.out.println("Test 1: " + variousFormatPatterns.toString());
variousFormatPatterns = java.time.format.DateTimeFormatter.ofPattern("yy-MM-dd");
System.out.println("\nTest 2: " + variousFormatPatterns.toString());
variousFormatPatterns = java.time.format.DateTimeFormatter.ofPattern("yyMMdd");
System.out.println("\nTest 3: " + variousFormatPatterns.toString());
variousFormatPatterns = java.time.format.DateTimeFormatter.ofPattern("MM/dd/yyyy HH:mm:ss");
System.out.println("\nTest 4: " + variousFormatPatterns.toString());
परिणाम (अंतरिक्ष/हाइफन/स्लैश/पेट के सीमांकक वर्ण की अवधारण पर ध्यान दें):
टेस्ट 1: घटाया वैल्यू (वर्षऑफ्रा, 2,2,2000-01-01) 'मूल्य (महीनाऑफियर, 2)' मूल्य (डेऑफमोन्थ, 2)
टेस्ट 2: कम किया गया वाल्यू (वर्षऑफ्रा, 2,2,2000-01-01) '-' वैल्यू (महीनाऑफियर, 2) '-' वैल्यू (डेऑफमोन्थ, 2)
टेस्ट 3: ReducedValue (YearOfEra, 2,2,2000-01-01) मूल्य (MonthOfYear, 2) मूल्य (DayOfMonth, 2)
टेस्ट 4: मूल्य (MonthOfYear, 2) '/' मूल्य (DayOfMonth, 2) '/' मूल्य (YearOfEra, 4,19, EXCEEDS_PAD) '' मूल्य (HOUROFDAY, 2) ':' मूल्य (MinuteOfHour, 2) ':' मूल्य (SecondOfMinute, 2)
इस दृष्टिकोण को कार्यान्वित करने के लिए java.time.format.DateTimeFormatterBuilder
में कोड का अध्ययन करने की आवश्यकता होगी। appendPattern(String pattern)
विधि के लिए जावाडॉक विशेष रूप से उपयोगी प्रतीत होता है। यदि आप जानते हैं कि आप केवल कुछ प्रकार के पैटर्न के साथ काम कर रहे हैं तो आप कुछ शॉर्टकट ले सकते हैं।
DateTimeFormatterBuilder
कोड के माध्यम से एक नज़र ले रहा है, वहाँ की संभावना एक जोखिम स्ट्रिंग्स जैसे Value
, ReducedValue
, Fraction
, आदि भविष्य जावा संस्करणों में सूचना के बिना परिवर्तन कर सकता है के रूप में समाधान के इस प्रकार पर निर्भर होगा।
- 1. jaw.time टाइमज़ोन ऑफसेट के लिए डेटटाइमफॉर्मेटर पैटर्न
- 2. जेडीके 8
- 3. जावा एप्लिकेशन सीपीयू/जेडीके 8
- 4. आइटम/ऑब्जेक्ट प्राप्त करें जहां तत्व गिरा दिया गया है
- 5. क्या जावा स्ट्रिंग को निरस्त कर दिया गया है?
- 6. लोकलडेट और डेटटाइमफॉर्मेटर जापानी लोकेल
- 7. जावा डेटटाइमफॉर्मेटर?
- 8. SeCreateSymbolicLinkPrivilege विंडोज 8 पर क्यों नजरअंदाज कर दिया गया है?
- 9. नेटबीन्स 8 और जेडीके 1.8
- 10. यूटीएफ -8 गुणों में जावा स्ट्रिंग को एन्कोड किया गया
- 11. एक संदर्भ दिया गया एक लेआउट Inflater कैसे प्राप्त करें?
- 12. रजिस्ट्रीकी मान बदल दिया गया था जब अधिसूचना प्राप्त करें
- 13. जावा 8 में जावाक्स का नोटन हटा दिया गया था?
- 14. कैसे ऑब्जेक्ट को कचरा दिया गया है
- 15. हैश रॉकेट को हटा दिया गया है?
- 16. जांचें कि क्या दिया गया स्ट्रिंग एक यूआरएल है
- 17. विधि द्वारा दिया गया मान
- 18. जावा से पैटर्न स्ट्रिंग प्राप्त करना SimpleDateFormat
- 19. REKKit में RKResponseDescriptor को अस्वीकार कर दिया गया है
- 20. जेडीके 9
- 21. जावा: एक स्ट्रिंग से यूटीएफ -8 हेक्स मान प्राप्त करें?
- 22. जावा 8 डेटटाइमफॉर्मेटर के साथ दो अक्षर वर्षों को पार्स करने के लिए आधार दिनांक कैसे बदलें?
- 23. स्ट्रिंगवाइटर को DataContractSerializer क्यों छोटा कर दिया गया है?
- 24. UTF-8 स्ट्रिंग के प्रथम वर्ण प्राप्त
- 25. स्ट्रिंग मैनिपुलेशन पैटर्न
- 26. स्ट्रिंग को स्ट्रिंग क्यों डाला गया?
- 27. एक्सएएमएल: मूल पृष्ठभूमि प्राप्त करें
- 28. .net में रूपांतरण: मूल Utf-8 <-> प्रबंधित स्ट्रिंग
- 29. एंड्रॉइड स्क्रीन आकार को हटा दिया गया है?
- 30. केकपीएचपी की मूल निर्देशिका कैसे प्राप्त करें?
@ केविन वर्कमैन संभावित रूप से डुप्लिकेट नहीं है, क्योंकि यह जेडीके 8 डेटटाइमफॉर्मेटर क्लास के बारे में है, जोडा टाइम क्लास – bowmore
@bowmore नहीं है जेडीके 8 डेटटाइमफॉर्मेटर क्लास जोडाटाइम डेटटाइमफॉर्मेटर क्लास से बाहर था। उस प्रश्न का उत्तर इस प्रश्न का उत्तर है। –
@ केविन वर्कमैन जो एक दूसरे को प्रेरित करता है, उन्हें समान नहीं बनाता है। उनका व्यवहार विभिन्न तरीकों से अलग है। फिर भी, जबकि उत्तर समान हो सकते हैं, सवाल एक डुप्लिकेट नहीं है, क्योंकि सवाल पूछने वाले दोनों को दोनों के बीच संबंधों से अनजान हो सकता है। – bowmore