मैं आधुनिक उत्तर प्रदान कर रहा हूं।
java.time और ThreeTenABP
वर्तमान तिथि प्राप्त करने के लिए:
LocalDate today = LocalDate.now(ZoneId.of("America/Hermosillo"));
यह आपको एक LocalDate
वस्तु देता है , जिसे आपको अपने कार्यक्रम में तारीख रखने के लिए उपयोग करना चाहिए। एLocalDate
दिन के समय के बिना एक तिथि है।
केवल जब आपको किसी उपयोगकर्ता को दिनांक प्रदर्शित करने की आवश्यकता होती है, तो उसे उपयोगकर्ता के स्थान के लिए उपयुक्त स्ट्रिंग में प्रारूपित करें:
DateTimeFormatter userFormatter
= DateTimeFormatter.ofLocalizedDate(FormatStyle.LONG);
System.out.println(today.format(userFormatter));
जब मैंने इस स्निपेट को आज अमेरिका के अंग्रेजी लोकेल में चलाया, तो आउटपुट था:
13 जुलाई 2019
यदि आप इसे छोटा चाहते हैं, तो निर्दिष्ट करें FormatStyle.MEDIUM
या यहां तक कि FormatStyle.SHORT
। DateTimeFormatter.ofLocalizedDate
डिफ़ॉल्ट स्वरूपण लोकेल का उपयोग करता है, इसलिए मुद्दा यह है कि यह उस स्थान के लिए उपयुक्त आउटपुट देगा, विभिन्न स्थानों के लिए अलग।
यदि आपके उपयोगकर्ता के आउटपुट प्रारूप के लिए बहुत विशेष आवश्यकताएं हैं, तो एक प्रारूप पैटर्न स्ट्रिंग का उपयोग करें:
DateTimeFormatter userFormatter = DateTimeFormatter.ofPattern(
"d-MMM-u", Locale.forLanguageTag("ar-AE"));
13-يول -2019
मैं java.time, आधुनिक जावा दिनांक और समय API का उपयोग और अनुशंसा कर रहा हूं। DateFormat
, SimpleDateFormat
, Date
औरCalendar
प्रश्न में इस्तेमाल किया और / या अन्य जवाब में से कई, खराब तरीके से तैयार कर रहे हैं और लंबे समय से पुराना। और java.time के साथ काम करने के लिए बहुत अच्छा है।
प्रश्न: क्या मैं एंड्रॉइड पर java.time का उपयोग कर सकता हूं?
हाँ, java.time पुराने और नए Android उपकरणों पर अच्छी तरह से काम करता है। इसके लिए बस कम से कम जावा 6 की आवश्यकता होती है ।
- जावा 8 और बाद में और नए एंड्रॉइड डिवाइसों पर (एपीआई स्तर 26 से) आधुनिक एपीआई बिल्ट-इन आता है।
- जावा 6 और 7 में थ्रीटेन बैकपोर्ट मिलता है, आधुनिक कक्षाओं का बैकपोर्ट (जेएसआर 310 के लिए थ्रीटेन; नीचे लिंक देखें)।
- पर (पुराने) एंड्रॉइड, थ्रीटेन बैकपोर्ट के एंड्रॉइड संस्करण का उपयोग करते हैं। इसे थ्रीटेनबप कहा जाता है। और सुनिश्चित करें कि आप
org.threeten.bp
सबपेकेज से दिनांक और समय की कक्षाओं का आयात करते हैं ।
लिंक
DateFormat
कक्षा का उपयोग करते समय ठीक था जब यह प्रश्न 2011 में पूछा गया था, तो वह वर्ग और उसके उपवर्गSimpleDateFormat
हमेशा परेशान थे और अब लंबे समय तक पुराने हैं। मेरा सुझाव है कि आप इनका उपयोग न करें और इसके बजाय java.time, आधुनिक जावा तिथि और समय एपीआई में देखें ।