1. डेटटाइमफॉर्मेटर क्लास

विशेष DateTimeFormatterवर्ग को डेट टाइम एपीआई में अपना रास्ता मिल गया। इसका उद्देश्य प्रोग्रामरों के लिए दिनांक और समय को उनके इच्छित प्रारूप में परिवर्तित करना जितना संभव हो उतना आसान बनाना है। और हमें यह बताते हुए खुशी हो रही है कि जावा के निर्माता सफल हुए।

इसे इस्तेमाल करना बहुत ही आसान है। DateTimeFormatterसबसे पहले, आपको एक वर्ग बनाने और एक पैटर्न में पास करने की आवश्यकता है जो निर्दिष्ट करता है कि यह दिनांक और समय कैसे प्रदर्शित करेगा:

DateTimeFormatter dtf = DateTimeFormatter.ofPattern(pattern);

dtfएक DateTimeFormatterचर कहाँ है। वर्ग की एक स्थिर विधि है । और पैटर्न एक स्ट्रिंग है जो उस पैटर्न को निर्दिष्ट करता है जिसका उपयोग दिनांक और समय प्रदर्शित करने के लिए किया जाएगा।DateTimeFormatter.ofPattern()DateTimeFormatter

उदाहरण

कोड कंसोल आउटपुट
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("MM-dd-yy");
String text = dtf.format( LocalDateTime.now() );
System.out.println(text);


02-22-19

उपरोक्त उदाहरण में, हम पैटर्न के आधार पर ऑब्जेक्ट ofPattern()बनाने के लिए विधि का उपयोग करते हैं। DateTimeFormatterऔर अगली लाइन में हम ऑब्जेक्ट को स्ट्रिंग में format()कन्वर्ट करने के मेथड का इस्तेमाल करते हैं। LocalDateTimeआप स्क्रीन पर परिणाम देखें।

आप डेट टाइम एपीआई से लगभग किसी भी वस्तु को format()विधि में पास कर सकते हैं।

स्थिर ofPattern()भी बहुत सरल है: यह तर्क के रूप में एक पैटर्न लेता है और एक DateTimeFormatterवस्तु देता है। सबसे दिलचस्प हिस्सा पैटर्न में पाया जाता है।


2. स्वरूपण पैटर्न

पैटर्न के रूप में पास की गई स्ट्रिंग को जानकारी प्रदर्शित करते समय पैटर्न के रूप में उपयोग किया जाता है। MM को महीने की संख्या, dd को महीने के दिन और yy को वर्ष की संख्या से बदल दिया जाता है। पत्रों का मामला मायने रखता है।

इन समय पैटर्न के लिए पूरी तालिका यह है:

पत्र अर्थ
वाई वर्ष
एम महीना
डी दिन
एच घंटे
एम मिनट
एस सेकंड
एस एक सेकंड का हजारवाँ भाग
एन नैनोसेकंड।

याद रखना विशेष रूप से कठिन नहीं है।

लेकिन उदाहरण के पैटर्न में बार-बार अक्षर MM, dd और yy क्यों शामिल हैं? खैर, यह वह जगह है जहाँ यह और अधिक दिलचस्प हो जाता है।

सामान्य विचार

अक्षरों की संख्या पाठ की लंबाई को प्रभावित करती है। जितने ज्यादा अक्षर होंगे, टेक्स्ट उतना ही लंबा होगा।

यदि अक्षर H को एक बार निर्दिष्ट किया जाता है, तो 9 घंटे को 9 के रूप में प्रदर्शित किया जाएगा, लेकिन यदि अक्षर H को एक पंक्ति में दो बार निर्दिष्ट किया जाता है, तो 9 घंटे को 09 के रूप में प्रदर्शित किया जाएगा।

यदि अक्षर y को एक पंक्ति में 2 बार निर्दिष्ट किया जाता है, तो वर्ष को 2 अंकों का उपयोग करके लिखा जाता है। यदि यह लगातार 4 बार आता है तो 4 अंकों का प्रयोग किया जाता है।

यदि M अक्षर को एक पंक्ति में 2 बार निर्दिष्ट किया जाता है, तो महीने की संख्या लिखी जाती है। यदि एक पंक्ति में 3 बार, तो महीने का नाम (उसके पहले 3 अक्षर) का प्रयोग किया जाता है। यदि लगातार 4 बार हो तो महीने का पूरा नाम प्रयोग किया जाता है।

उदाहरण:

कोड कंसोल आउटपुट
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("MMMM-dd-yyyy");
String text = dtf.format( LocalDateTime.now() );
System.out.println(text);


February-22-2019


3. पैटर्न की पूरी तालिका

पूरी टेबल काफी बड़ी और सुपर दिलचस्प है:

नमूना पैटर्न की विविधताएं उदाहरण विवरण
वाई व व व य 19; 2019 वर्ष
एम/एल एम, एमएम, एमएमएम, एमएमएमएम, एमएमएमएमएम 1; 01; जनवरी; जनवरी; जे महीना
डी डी, डी.डी 9; 09 दिन
एच एच, एचएच 2; 02 घंटे
एम मी, मिमी 3; 03 मिनट
एस एस, एस.एस 5; 05 सेकंड
एस एस, एसएस, एसएसएस, ... 1; 12; 123 एक सेकंड का हजारवाँ भाग
एन एन 123456789 नैनोसेकंड
जी जी, जीजीजीजी, जीजीजीजीजी विज्ञापन; अन्नो डोमिनी; ए; युग
क्यू / क्यू क्यू, क्यूक्यू, क्यूक्यूक्यू, क्यूक्यूक्यू 3; 03; Q3; तीसरी तिमाही चौथाई
डब्ल्यू डब्ल्यू 13 वर्ष का सप्ताह
डब्ल्यू डब्ल्यू 3 महीने का सप्ताह
ईईई, ईईईई, ईईईई सोमवार; सोमवार; एम सप्ताह का दिन
ई / सी ई, ई, ईई, ईई, ईईईई 1; 01; सोमवार; सोमवार; एम सप्ताह का दिन
बजे सुबह या शाम
एच एच 12 12 घंटे की घड़ी।
वी वी.वी यूरोप/हेलसिंकी समय क्षेत्र
जेड z zzz EET; पूर्वी यूरोपीय मानक समय समय क्षेत्र
हे ओ ऊओ जीएमटी+2; जीएमटी+02:00 समय क्षेत्र

वैसे, यह वास्तव में एक पूर्ण संस्करण नहीं है। आप यहां सबसे पूर्ण संस्करण पा सकते हैं ।



4. विश्लेषण का समय

कक्षा DateTimeFormatterन केवल किसी दिए गए पैटर्न के अनुसार दिनांक और समय को एक स्ट्रिंग में परिवर्तित करने की क्षमता के लिए दिलचस्प है, बल्कि रिवर्स ऑपरेशन करने के लिए भी दिलचस्प है!

एक स्ट्रिंग को पार्स करना उसे सार्थक टोकन में विभाजित करने की प्रक्रिया है।

यहाँ यह कैसा दिखता है:

कोड कंसोल आउटपुट
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("MMMM-dd-yyyy");
LocalDate date = LocalDate.parse("February-23-2019", dtf);
System.out.println(date);


February-23-2019

सबसे पहले, हम एक DateTimeFormatterऑब्जेक्ट बनाते हैं और उस पैटर्न को सेट करते हैं जिसका उपयोग पार्सिंग के लिए किया जाता है।

फिर हम LocalDate.parse()or LocalTime.parse()or LocalDateTime.parse()मेथड को कॉल करते हैं और ऑब्जेक्ट के साथ पार्स होने के लिए स्ट्रिंग में पास करते हैं DateTimeFormatter, जो समझता है कि पास किए गए टेक्स्ट को कैसे पार्स करना है और इसे करने के लिए किस पैटर्न का उपयोग किया जाना चाहिए।

एक अन्य उदाहरण: इस बार हम समय का विश्लेषण करेंगे।

कोड कंसोल आउटपुट
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("HH:mm:ss");
LocalTime time = LocalTime.parse("23:59:59", dtf);
System.out.println(time);


23:59:59