दिलचस्प पोस्ट
मैं jQuery के साथ एक तत्व का चयन कैसे कर सकता हूं? MySQL इंजेक्शन और क्रॉस साइट स्क्रिप्टिंग से बचाव करने का सर्वोत्तम तरीका जावा वेब अनुप्रयोग को अंतर्राष्ट्रीयकरण कैसे करें? Android Marshmallow में किसी सेवा से अनुमतियों का अनुरोध कैसे करें JPA / JAX-RS वेब सेवा में JAXBElement मान्य करें एंड्रॉइड: उपयोगकर्ता की भाषा में सप्ताह के वर्तमान दिन (सोमवार, आदि …) कैसे प्राप्त करें? क्यों कक्षा में प्रारंभिक केवल = या {} उपयोग कर सकते हैं? मिलिसेकंड को मानव पठनीय रूप में कैसे परिवर्तित किया जाए? एक सूची <> में आइटम प्राप्त करने के लिए LINQ का उपयोग करें, जो किसी दूसरी सूची में नहीं हैं <> पंडों में कॉलम का नाम बदलना मैं जावास्क्रिप्ट के साथ एक मेटा टैग से जानकारी कैसे प्राप्त करूं? आरवीएम स्थापना काम नहीं कर रहा है: "आरवीएम एक फ़ंक्शन नहीं है" Windows में पाथ परिवेश चर को निर्देशिका जोड़ना VBA की छिपी हुई विशेषताओं सर्वश्रेष्ठ अभ्यास: अभिविन्यास परिवर्तन के दौरान AsyncTask

LocalDateTime के साथ पार्स / फॉर्मेट की तारीखें कैसे करें? (जावा 8)

जावा 8 ने दिनांक और समय (जेएसआर 310) के साथ काम करने के लिए एक नया एपीआई जोड़ा।

मेरे पास स्ट्रिंग के रूप में दिनांक और समय है (जैसे "2014-04-08 12:30" )। दिए गए स्ट्रिंग से मैं एक LocalDateTime इंस्टेंस कैसे प्राप्त कर सकता हूं?

LocalDateTime ऑब्जेक्ट के साथ काम करने के बाद: मैं ऊपर दिए गए जैसा कि एक ही प्रारूप के साथ LocalDateTime इंस्टेंस को वापस स्ट्रिंग में कनवर्ट कर सकता हूं?

वेब के समाधान से एकत्रित समाधान "LocalDateTime के साथ पार्स / फॉर्मेट की तारीखें कैसे करें? (जावा 8)"

पार्सिंग तिथि और समय

एक LocalDateTime ऑब्जेक्ट को एक स्ट्रिंग से बनाने के लिए जो आप स्थैतिक LocalDateTime.parse() विधि का उपयोग कर सकते हैं। यह पैरामीटर के रूप में एक स्ट्रिंग और DateTimeFormatter लेता है। DateTimeFormatter का उपयोग दिनांक / समय पैटर्न निर्दिष्ट करने के लिए किया जाता है

 String str = "1986-04-08 12:30"; DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); LocalDateTime dateTime = LocalDateTime.parse(str, formatter); 

स्वरूपण तिथि और समय

किसी LocalDateTime ऑब्जेक्ट को फ़ॉर्मेट किया गया स्ट्रिंग बनाने के लिए आप format() विधि का उपयोग कर सकते हैं।

 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); LocalDateTime dateTime = LocalDateTime.of(1986, Month.APRIL, 8, 12, 30); String formattedDateTime = dateTime.format(formatter); // "1986-04-08 12:30" 

ध्यान दें कि डेटटाइमफ़ॉर्मर में स्थिरांक के रूप में कुछ सामान्यतः उपयोग की गई दिनांक / समय प्रारूप पूर्वनिर्धारित हैं। उदाहरण के लिए: LocalDateTime का उपयोग करके ऊपर से LocalDateTime उदाहरण को LocalDateTime लिए स्ट्रिंग "1986-04-08T12:30:00" परिणाम होगा।

LocalDate parse() और format() तरीके सभी दिनांक / समय संबंधी ऑब्जेक्ट्स के लिए उपलब्ध हैं (जैसे LocalDate या ZonedDateTime )

यदि आप String आईएसओ -8601 प्रारूप में हैं, तो यह एक पैटर्न के साथ बिना एक String पर LocalDate.parse() या LocalDateTime.parse() उपयोग कर सकते हैं।

उदाहरण के लिए,

 String strDate = "2015-08-04"; LocalDate aLD = LocalDate.parse(strDate); System.out.println("Date: " + aLD); String strDatewithTime = "2015-08-04T10:11:30"; LocalDateTime aLDT = LocalDateTime.parse(strDatewithTime); System.out.println("Date with Time: " + aLDT); 

आउटपुट ,

 Date: 2015-08-04 Date with Time: 2015-08-04T10:11:30 

और DateTimeFormatter उपयोग केवल तभी करें जब आपको अन्य दिनांक पैटर्न से निपटना पड़े, उदाहरण के लिए, डीडी एमएमएम यूयूयूयू माह का दिन (दो अंक) का प्रतिनिधित्व करता है, माह के नाम के तीन पत्र (जनवरी, फर, मार्च, …) , और एक चार अंकों का वर्ष:

 DateTimeFormatter dTF = DateTimeFormatter.ofPattern("dd MMM uuuu"); String anotherDate = "04 Aug 2015"; LocalDate lds = LocalDate.parse(anotherDate, dTF); System.out.println(anotherDate + " parses to " + lds); 

उत्पादन

 04 Aug 2015 parses to 2015-08-04 

यह भी याद है कि DateTimeFormatter ऑब्जेक्ट द्विदिश है; यह दोनों इनपुट और प्रारूप आउटपुट को पार्स कर सकता है।

 String strDate = "2015-08-04"; LocalDate aLD = LocalDate.parse(strDate); DateTimeFormatter dTF = DateTimeFormatter.ofPattern("dd MMM uuuu"); System.out.println(aLD + " formats as " + dTF.format(aLD)); 

उत्पादन

 2015-08-04 formats as 04 Aug 2015 

( फ़ॉर्मेटिंग और पार्सिंग डेटफॉर्मर के लिए पैटर्न की पूर्ण सूची देखें)

  Symbol Meaning Presentation Examples ------ ------- ------------ ------- G era text AD; Anno Domini; A u year year 2004; 04 y year-of-era year 2004; 04 D day-of-year number 189 M/L month-of-year number/text 7; 07; Jul; July; J d day-of-month number 10 Q/q quarter-of-year number/text 3; 03; Q3; 3rd quarter Y week-based-year year 1996; 96 w week-of-week-based-year number 27 W week-of-month number 4 E day-of-week text Tue; Tuesday; T e/c localized day-of-week number/text 2; 02; Tue; Tuesday; T F week-of-month number 3 a am-pm-of-day text PM h clock-hour-of-am-pm (1-12) number 12 K hour-of-am-pm (0-11) number 0 k clock-hour-of-am-pm (1-24) number 0 H hour-of-day (0-23) number 0 m minute-of-hour number 30 s second-of-minute number 55 S fraction-of-second fraction 978 A milli-of-day number 1234 n nano-of-second number 987654321 N nano-of-day number 1234000000 V time-zone ID zone-id America/Los_Angeles; Z; -08:30 z time-zone name zone-name Pacific Standard Time; PST O localized zone-offset offset-O GMT+8; GMT+08:00; UTC-08:00; X zone-offset 'Z' for zero offset-X Z; -08; -0830; -08:30; -083015; -08:30:15; x zone-offset offset-x +0000; -08; -0830; -08:30; -083015; -08:30:15; Z zone-offset offset-Z +0000; -0800; -08:00; p pad next pad modifier 1 ' escape for text delimiter '' single quote literal ' [ optional section start ] optional section end # reserved for future use { reserved for future use } reserved for future use 

ऊपर दिए गए दोनों उत्तर स्ट्रिंग पैटर्न के बारे में बहुत अच्छी तरह से सवाल बताते हैं। हालांकि, अगर आप आईएसओ 8601 के साथ काम कर रहे हैं, तो डेटमैकेफ़ॉर्मर को लागू करने की कोई आवश्यकता नहीं है क्योंकि स्थानीयडेटाइट पहले ही इसके लिए तैयार है:

समय क्षेत्र ISO8601 स्ट्रिंग में LocalDateTime कन्वर्ट करें

 LocalDateTime ldt = LocalDateTime.now(); ZonedDateTime zdt = ldt.atZone(ZoneOffset.UTC); //you might use a different zone String iso8601 = zdt.toString(); 

ISO8601 स्ट्रिंग से वापस एक स्थानीय डेटटाइम में कनवर्ट करें

 String iso8601 = "2016-02-14T18:32:04.150Z"; ZonedDateTime zdt = ZonedDateTime.parse(iso8601); LocalDateTime ldt = zdt.toLocalDateTime();