tl; डॉ
LocalDate.parse(
"01-23-2017" ,
DateTimeFormatter.ofPattern( "MM-dd-uuuu" )
)
विवरण
मेरे पास एक java.util है। प्रारूप में yyyy-mm-dd
जैसा कि अन्य उल्लेख किया गया है, Date
वर्ग का कोई प्रारूप नहीं है। यह यूटीसी में 1970 की शुरुआत से मिलीसेकंड की गिनती है। कोई सेटिंग संलग्न नहीं है।
java.time
अन्य उत्तर परेशान पुरानी विरासत तिथि-समय की कक्षाओं का उपयोग करते हैं, जो अब java.time कक्षाओं द्वारा दबाए गए हैं।
यदि आपके पास एक है java.util.Date
, तो किसी Instant
ऑब्जेक्ट में कनवर्ट करें । Instant
कक्षा में समय रेखा पर एक पल का प्रतिनिधित्व करता यूटीसी के एक संकल्प के साथ नैनोसेकंड (नौ (9) एक दशमलव भिन्न के अंकों के लिए)।
Instant instant = myUtilDate.toInstant();
समय क्षेत्र
अन्य उत्तर समय क्षेत्र के महत्वपूर्ण मुद्दे की अनदेखी करते हैं। तिथि निर्धारित करने के लिए एक समय क्षेत्र की आवश्यकता होती है। किसी भी क्षण के लिए, तिथि क्षेत्र के अनुसार दुनिया भर में भिन्न होती है। पेरिस फ्रांस में आधी रात के कुछ मिनट बाद एक नया दिन है, जबकि अभी भी मॉन्ट्रियल क्यूबेक में "कल" है।
उस समय क्षेत्र को परिभाषित करें जिसके द्वारा आप अपने लिए संदर्भ चाहते हैं Instant
।
ZoneId z = ZoneId.of( "America/Montreal" );
ZoneId
पाने के लिए आवेदन करें ZonedDateTime
।
ZonedDateTime zdt = instant.atZone( z );
LocalDate
यदि आप केवल समय के बिना तारीख के बारे में परवाह करते हैं, तो एक निकालें LocalDate
।
LocalDate localDate = zdt.toLocalDate();
मानक ISO 8601 प्रारूप में एक स्ट्रिंग उत्पन्न करने के लिए, YYYY-MM-DD, बस कॉल करें toString
। Java.time कक्षाएं स्ट्रिंग उत्पन्न / पार्स करते समय डिफ़ॉल्ट रूप से मानक प्रारूपों का उपयोग करती हैं।
String output = localDate.toString();
2017/01/23
यदि आप MM-DD-YYYY प्रारूप चाहते हैं, तो एक स्वरूपण पैटर्न को परिभाषित करें।
DateTimeFormatter f = DateTimeFormatter.ofPattern( "MM-dd-uuuu" );
String output = localDate.format( f );
ध्यान दें कि स्वरूपण पैटर्न कोड केस-संवेदी होते हैं। प्रश्न में कोड (वर्ष के महीने mm
) के बजाय गलत तरीके से उपयोग किया गया (घंटे का मिनट MM
)।
DateTimeFormatter
पार्सिंग के लिए एक ही वस्तु का उपयोग करें । Java.time कक्षाएं थ्रेड-सुरक्षित हैं, इसलिए आप इस ऑब्जेक्ट को इधर-उधर रख सकते हैं और थ्रेड्स के पार भी इसे बार-बार पुन: उपयोग कर सकते हैं।
LocalDate localDate = LocalDate.parse( "01-23-2017" , f );
जावा के बारे में
Java.time ढांचे जावा 8 और बाद में बनाया गया है। इन कक्षाओं परेशानी वर्ष प्रतिस्थापित विरासत जैसे तिथि-समय कक्षाएं java.util.Date
, Calendar
, और SimpleDateFormat
।
Joda समय परियोजना, अब में रखरखाव मोड , प्रवास करने की सलाह देता java.time कक्षाएं।
अधिक जानने के लिए, Oracle ट्यूटोरियल देखें । और कई उदाहरणों और स्पष्टीकरणों के लिए ढेर अतिप्रवाह खोजें। विशिष्टता JSR 310 है ।
Java.time कक्षाएं कहाँ से प्राप्त करें?
ThreeTen-अतिरिक्त परियोजना अतिरिक्त कक्षाओं के साथ java.time फैली हुई है। यह परियोजना java.time के लिए भविष्य के संभावित अतिरिक्त के लिए एक साबित जमीन है। आप यहाँ कुछ उपयोगी वर्गों जैसे मिल सकता है Interval
, YearWeek
, YearQuarter
, और अधिक ।