मैं एक स्ट्रिंग को एक में कैसे बदल सकता हूं LocalDate
?
मैंने उदाहरण देखे हैं:
LocalDate dt = new LocalDate("2005-11-12");
लेकिन मेरे तार इस तरह हैं:
2005-nov-12
मैं एक स्ट्रिंग को एक में कैसे बदल सकता हूं LocalDate
?
मैंने उदाहरण देखे हैं:
LocalDate dt = new LocalDate("2005-11-12");
लेकिन मेरे तार इस तरह हैं:
2005-nov-12
जवाबों:
जैसा कि आप Joda Time का उपयोग करते हैं, आपको उपयोग करना चाहिए DateTimeFormatter
:
final DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MMM-dd");
final LocalDate dt = dtf.parseLocalDate(yourinput);
यदि जावा 8 या उसके बाद का उपयोग कर रहे हैं, तो हर्ट्ज़ी के उत्तर को देखें
जावा 1.8 के बाद से, आप java.time कक्षाओं का उपयोग करके एक अतिरिक्त पुस्तकालय के बिना इसे प्राप्त कर सकते हैं। ट्यूटोरियल देखें ।
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MMM-dd");
formatter = formatter.withLocale( putAppropriateLocaleHere ); // Locale specifies human language for translating, and cultural norms for lowercase/uppercase and abbreviations and such. Example: Locale.US or Locale.CANADA_FRENCH
LocalDate date = LocalDate.parse("2005-nov-12", formatter);
सिंटैक्स हालांकि लगभग समान है।
आपको डेटटाइम से लोकलडेट तक जाना पड़ सकता है।
Joda समय का उपयोग करना:
DateTimeFormatter FORMATTER = DateTimeFormat.forPattern("yyyy-MMM-dd");
DateTime dateTime = FORMATTER.parseDateTime("2005-nov-12");
LocalDate localDate = dateTime.toLocalDate();
डेटाटाइम फॉर्मेटिंग द्वारा किया जाता है org.joda.time.format.DateTimeFormatter class
। तीन वर्ग फ़ार्मेटर्स बनाने के लिए फ़ैक्टरी विधियाँ प्रदान करते हैं , और यह एक है। दूसरे हैं ISODateTimeFormat
और DateTimeFormatterBuilder
।
DateTimeFormatter format = DateTimeFormat.forPattern("yyyy-MMM-dd");
LocalDate lDate = new LocalDate().parse("2005-nov-12",format);
final org.joda.time.LocalDate class
समय क्षेत्र के बिना दिनांक का प्रतिनिधित्व करने वाला एक अपरिवर्तनीय डेटाटाइम वर्ग है । LocalDate
है धागे की सुरक्षित और अपरिवर्तनीय है कि, बशर्ते कालक्रम भी है। सभी मानक क्रोनोलॉजी वर्ग की आपूर्ति थ्रेड-सुरक्षित और अपरिवर्तनीय हैं।
DateTimeFormatter
इन-बिल्ट प्रारूप हैं जिनका उपयोग सीधे चरित्र अनुक्रम को पार्स करने के लिए किया जा सकता है। यह मामला संवेदनशील है, नोव हालांकि नोव और एनओवी अभ्यस्त काम करेगा:
DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy-MMM-dd");
try {
LocalDate datetime = LocalDate.parse(oldDate, pattern);
System.out.println(datetime);
} catch (DateTimeParseException e) {
// DateTimeParseException - Text '2019-nov-12' could not be parsed at index 5
// Exception handling message/mechanism/logging as per company standard
}
DateTimeFormatterBuilder
फॉर्मैटर बनाने के लिए कस्टम तरीका प्रदान करता है। यह केस असंवेदनशील है, नोव, नोव और एनओवी को एक ही माना जाएगा।
DateTimeFormatter f = new DateTimeFormatterBuilder().parseCaseInsensitive()
.append(DateTimeFormatter.ofPattern("yyyy-MMM-dd")).toFormatter();
try {
LocalDate datetime = LocalDate.parse(oldDate, f);
System.out.println(datetime); // 2019-11-12
} catch (DateTimeParseException e) {
// Exception handling message/mechanism/logging as per company standard
}