रूस।
Month
.MAY
.getDisplayName(
TextStyle.FULL_STANDALONE ,
new Locale( "ru" , "RU" )
)
май
संयुक्त राज्य अमेरिका में अंग्रेजी।
Month
.MAY
.getDisplayName(
TextStyle.FULL_STANDALONE ,
Locale.US
)
मई
इस कोड को IdeOne.com पर लाइव देखें ।
थ्रीटेनबप और जावा.टाइम
यहाँ आधुनिक उत्तर है। जब यह सवाल 2011 में पूछा गया था, Calendar
औरGregorianCalendar
आमतौर पर दिनांक और समय के लिए उपयोग किया जाता था, भले ही वे हमेशा खराब तरीके से डिजाइन किए गए थे। अब से 8 साल पहले की बात है, और वे कक्षाएं बहुत पुरानी हैं। यह मानते हुए कि आप अभी तक एपीआई स्तर 26 पर नहीं हैं, मेरा सुझाव थ्री टीएनएएनबीपी पुस्तकालय का उपयोग करना है, जिसमें जावा का एक एंड्रॉइड अनुकूलित बैकपोर्ट है। आधुनिक जावा तिथि और समय एपीआई। java.time के साथ काम करने के लिए बहुत अच्छा है।
आपकी सटीक आवश्यकताओं और स्थिति के आधार पर दो विकल्प हैं:
- उपयोग
Month
और इसकी getDisplayName
विधि।
- एक का उपयोग करें
DateTimeFormatter
।
महीने का उपयोग करें
Locale desiredLanguage = Locale.ENGLISH;
Month m = Month.MAY;
String monthName = m.getDisplayName(TextStyle.FULL, desiredLanguage);
System.out.println(monthName);
इस स्निपेट से आउटपुट है:
मई
कुछ भाषाओं में यह फर्क पड़ेगा कि आप उपयोग करते हैं TextStyle.FULL
या नहीं TextStyle.FULL_STANDALONE
। आपको यह देखना होगा, हो सकता है कि आप अपने उपयोगकर्ताओं के साथ जांच करें कि दोनों में से कौन सा आपके संदर्भ में फिट बैठता है।
DateTimeFormatter का उपयोग करें
यदि आपको दिन के समय के साथ या बिना तारीख मिली है, तो मुझे DateTimeFormatter
अधिक व्यावहारिक लगता है । उदाहरण के लिए:
DateTimeFormatter monthFormatter = DateTimeFormatter.ofPattern("MMMM", desiredLanguage);
ZonedDateTime dateTime = ZonedDateTime.of(2019, 5, 31, 23, 49, 51, 0, ZoneId.of("America/Araguaina"));
String monthName = dateTime.format(monthFormatter);
मैं ZonedDateTime
पुराने Calendar
वर्ग के लिए निकटतम प्रतिस्थापन का उपयोग कर रहा हूं । इसके बाद के संस्करण कोड एक के लिए काम करेंगे LocalDate
एक, LocalDateTime
, MonthDay
, OffsetDateTime
और एक YearMonth
भी।
क्या होगा यदि आपको Calendar
एक विरासत एपीआई से मिला जो अभी तक java.time में अपग्रेड नहीं हुआ है? A में कनवर्ट करें ZonedDateTime
और ऊपर के रूप में आगे बढ़ें:
Calendar c = getCalendarFromLegacyApi();
ZonedDateTime dateTime = DateTimeUtils.toZonedDateTime(c);
बाकी सब पहले जैसा ही है।
प्रश्न: java.time को Android API स्तर 26 की आवश्यकता नहीं है?
java.time पुराने और नए दोनों Android उपकरणों पर अच्छी तरह से काम करता है। इसके लिए बस कम से कम जावा 6 की आवश्यकता होती है ।
- जावा 8 और बाद में और नए एंड्रॉइड डिवाइसों पर (एपीआई स्तर 26 से) आधुनिक एपीआई बिल्ट-इन आता है।
- गैर-एंड्रॉइड जावा 6 और 7 में थ्रीटैन बैकपोर्ट मिलता है, आधुनिक कक्षाओं का बैकपोर्ट (जेएसआर 310 में थ्रीटेन, नीचे लिंक देखें)।
- पर (पुराने) एंड्रॉइड, थ्रीटेन बैकपोर्ट के एंड्रॉइड संस्करण का उपयोग करते हैं। इसे थ्रीटेनबप कहा जाता है। और सुनिश्चित करें कि आप
org.threeten.bp
सबपेकेज से दिनांक और समय की कक्षाओं का आयात करते हैं ।
लिंक