आधुनिक उत्तर के लिए समय।
java.time और ThreeTenABP
DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("d/M/u");
String validUntil = "1/1/1990";
LocalDate validDate = LocalDate.parse(validUntil, dateFormatter);
LocalDate currentDate = LocalDate.now(ZoneId.of("Pacific/Efate"));
if (currentDate.isAfter(validDate)) {
System.out.println("Catalog is outdated");
}
जब मैंने इस कोड को अभी चलाया, तो आउटपुट था:
कैटलॉग पुराना है
चूंकि यह सभी समय क्षेत्रों में एक ही तारीख कभी नहीं है, इसलिए स्पष्ट समय क्षेत्र दें LocalDate.now। यदि आप चाहते हैं कि कैटलॉग सभी समय क्षेत्रों में एक ही समय में समाप्त हो जाए, तो आप ZoneOffset.UTCतब तक दे सकते हैं जब तक आप उपयोगकर्ताओं को सूचित करते हैं कि आप यूटीसी का उपयोग कर रहे हैं।
मैं जावा का उपयोग कर रहा हूं। आधुनिक जावा तिथि और समय एपीआई। आपके द्वारा उपयोग की जाने वाली दिनांक-समय कक्षाएं Calendar, SimpleDateFormatऔर Date, सभी खराब तरीके से डिज़ाइन की गई हैं और सौभाग्य से लंबे समय तक पुरानी हैं। नाम के बावजूद Dateएक तारीख का प्रतिनिधित्व नहीं करता है, लेकिन समय में एक बिंदु। इस का एक परिणाम यह है: भले ही आज, 15 फरवरी, 2019 है एक नव निर्मित Dateवस्तु पहले से ही है के बाद (ऐसा नहीं के बराबर) एक Dateपार्स करने से वस्तु 15/02/2019। यह कुछ भ्रमित करता है। इसके विपरीत आधुनिक LocalDateदिन के समय के बिना (और समय क्षेत्र के बिना) एक तारीख है, इसलिए LocalDateआज की तारीख का प्रतिनिधित्व करने वाले दो एस हमेशा बराबर होंगे।
प्रश्न: क्या मैं एंड्रॉइड पर java.time का उपयोग कर सकता हूं?
हाँ, java.time पुराने और नए Android उपकरणों पर अच्छी तरह से काम करता है। इसके लिए बस कम से कम जावा 6 की आवश्यकता होती है ।
- जावा 8 और बाद में और नए एंड्रॉइड डिवाइसों पर (एपीआई स्तर 26 से) आधुनिक एपीआई बिल्ट-इन आता है।
- जावा 6 और 7 में थ्रीटेन बैकपोर्ट मिलता है, आधुनिक कक्षाओं का बैकपोर्ट (जेएसआर 310 के लिए थ्रीटेन; नीचे लिंक देखें)।
- पर (पुराने) एंड्रॉइड, थ्रीटेन बैकपोर्ट के एंड्रॉइड संस्करण का उपयोग करते हैं। इसे थ्रीटेनबप कहा जाता है। और सुनिश्चित करें कि आप
org.threeten.bpसबपेकेज से दिनांक और समय की कक्षाओं का आयात करते हैं ।
लिंक
Calendar,SimpleDateFormat,Dateया अन्य लंबी पुरानी जावा दिनांक और समय वर्गों के किसी भी। इसके बजायjava.time, आधुनिक जावा तिथि और समय एपीआई का उपयोग करें । हां, आप इसे एंड्रॉइड पर उपयोग कर सकते हैं। पुराने एंड्रॉइड के लिए देखें कि एंड्रॉइड प्रोजेक्ट में थ्रीटेनबप का उपयोग कैसे करें ।