tl; डॉ
आसान, java.time साथ।
3 गुरुवार के लिए:
LocalDate.now().with( // Get today's date, then adjust.
TemporalAdjusters.dayOfWeekInMonth(3 , DayOfWeek.THURSDAY) // Define adjuster to move to third Thursday of same month.
) // Instantiates another `LocalDate` object (java.time uses immutable objects).
java.time
परेशानी पुराने तिथि-समय जावा के जल्द से जल्द संस्करणों के साथ बंडल कक्षाएं java.time वर्गों द्वारा का स्थान ले लिया अब अप्रचलित कर रहे हैं।
LocalDate
कक्षा समय-समय पर और समय क्षेत्र के बिना दिनांक-केवल मूल्य का प्रतिनिधित्व करती है। (: तीसरे गुरुवार, 2 मंगलवार, आदि पूर्व)
LocalDate ld = LocalDate.of(2018 , Month.FEBRUARY , 17) ;
किसी भी LocalDate
के लिए, आप एक ही महीने के भीतर एक दिन के सप्ताह के क्रमसूचक घटना में समायोजित कर सकते हैं। DayOfWeek
enum का उपयोग करके दिन के सप्ताह निर्दिष्ट करें।
समायोजन करने के लिए, TemporalAdjusters
कक्षा में पाए गए TemporalAdjuster
कार्यान्वयन का उपयोग करें।
TemporalAdjuster thirdThursdayAdjuster = TemporalAdjusters.dayOfWeekInMonth(3 , DayOfWeek.THURSDAY) ; // Third-Thursday.
किसी भी LocalDate
है कि समायोजक लागू करें, एक और LocalDate
वस्तु का निर्माण किया।
LocalDate thirdThursday = ld.with(thirdThursdayAdjuster) ;
कुछ इसे से बाहर एक अनंत इटरेटर की तरह (.next()
मिलान बस एक LocalDate
दूसरे करने के लिए से स्थानांतरित अगले तारीख लौट आते हैं। आप LocalDate::addMonths
कह सकते हैं।या यदि एक समय में एक महीने से निपटना है, तो YearMonth
कक्षा का उपयोग करें।
TemporalAdjuster thirdThursdayAdjuster = TemporalAdjusters.dayOfWeekInMonth(3 , DayOfWeek.THURSDAY) ; // Third-Thursday.
List<LocalDate> dozenThirdThursdays = new ArrayList<>(12) ;
YearMonth start = YearMonth.of(2018 , Month.MARCH) ;
for(int i = 1 ; i <= 12 ; i ++) {
YearMonth ym = start.plusMonths(i) ;
LocalDate firstOfMonth = ym.atDay(1) ;
LocalDate thirdThursday = firstOfMonth.with(thirdThursdayAdjuster) ;
dozenThirdThursdays.add(thirdThursday) ;
}
java.time
बारे java.time ढांचे जावा 8 और बाद में बनाया गया है। ये कक्षाएं परेशान पुराने legacy दिनांक-समय कक्षाएं जैसे java.util.Date
, Calendar
, & SimpleDateFormat
प्रदान करती हैं।
Joda-Time प्रोजेक्ट, अब maintenance mode में, java.time कक्षाओं में माइग्रेशन की सलाह देता है।
और जानने के लिए, Oracle Tutorial देखें। और कई उदाहरणों और स्पष्टीकरणों के लिए स्टैक ओवरफ़्लो खोजें। विशिष्टता JSR 310 है।
जावा.टाइम कक्षाएं कहां प्राप्त करें?
ThreeTen-Extra परियोजना अतिरिक्त कक्षाओं के साथ java.time फैली हुई है। यह परियोजना java.time के संभावित भविष्य के जोड़ों के लिए एक सिद्ध भूमि है। आपको यहां कुछ उपयोगी कक्षाएं मिल सकती हैं जैसे Interval
, YearWeek
, YearQuarter
, और more।
आपने मेरी दोपहर को हिलाया - धन्यवाद दोस्त! –
हालांकि महत्वपूर्ण नहीं है, मैं सिर्फ यह कहना चाहता हूं कि यह दूसरा Iterator है जिसे मैंने कभी बनाया है जो हटाता है(), आमतौर पर मुझे इसका समर्थन करने के लिए बहुत बोझिल लगता है। – Esko