दिलचस्प पोस्ट
Intent.putExtra के साथ arrays भेजा जा रहा है मैं एक एनपीएम पैकेज के पिछले संस्करण को कैसे स्थापित करूं? नाम-मान संग्रह में एक यूआरआई स्ट्रिंग को पार्स करें SQLServer समयबाह्य अपवाद कैसे प्राप्त करें I AngularJS में यूआरएल हेरिपुलेशन बंद करें SQL सर्वर: भाजित ऑपरेशन SQL सर्वर 2008 में केवल दो तारीखों तक की तुलना नहीं करें जब फ्लेक्सबॉक्स आइटम कॉलम मोड में लपेटते हैं, कंटेनर इसकी चौड़ाई नहीं बढ़ता जावा में ओवरराइड होने के बराबर और हैशोड होने पर किस मुद्दे पर विचार किया जाना चाहिए? onSharedPreferenceChanged नहीं बदला अगर परिवर्तन अलग गतिविधि में होता है? sed कमांड फ़ाइल में ढूँढ और प्रतिस्थापित और अधिलेखित फ़ाइल काम नहीं करती है, यह फ़ाइल को खाली करता है MySQL InnoDB तालिका से डेटा पंक्तियों को हटाने के बाद डिस्क स्थान जारी नहीं करता है Outlook में डिफ़ॉल्ट हस्ताक्षर कैसे जोड़ें फ्लेक्सबॉक्स में एक छवि पर केंद्र पाठ .NET में जेनेरिक विधियों में उनके रिटर्न प्रकार अनुमानित नहीं हो सकते। क्यूं कर?

एक स्ट्रिंग के रूप में महीना का नाम

मैं एक स्ट्रिंग के रूप में महीने का नाम वापस करने की कोशिश कर रहा हूं, उदाहरण के लिए "मई", "सितंबर", "नवंबर"

मैंने कोशिश की:

int month = c.get(Calendar.MONTH); 

हालांकि, यह पूर्णांक (5, 9, 11, क्रमशः) देता है मैं महीने का नाम कैसे प्राप्त करूं?

वेब के समाधान से एकत्रित समाधान "एक स्ट्रिंग के रूप में महीना का नाम"

GetDisplayName का उपयोग करें

पहले एपीआई के इस्तेमाल के लिए String.format(Locale.US,"%tB",c);

इसे इस्तेमाल करो :

 Calendar cal=Calendar.getInstance(); SimpleDateFormat month_date = new SimpleDateFormat("MMMM"); String month_name = month_date.format(cal.getTime()); 

महीना नाम में पूर्ण महीने का नाम शामिल होगा, यदि आप चाहते हैं कि छोटे-छोटे नाम इस का उपयोग करें

  SimpleDateFormat month_date = new SimpleDateFormat("MMM"); String month_name = month_date.format(cal.getTime()); 

स्ट्रिंग वेरिएबल में महीने प्राप्त करने के लिए नीचे कोड का उपयोग करें

उदाहरण के लिए सितंबर के महीने:

एम -> 9

एमएम -> 09

एमएमएम -> सितम्बर

एमएमएमएम -> सितंबर

 String monthname=(String)android.text.format.DateFormat.format("MMMM", new Date()) 
 SimpleDateFormat dateFormat = new SimpleDateFormat( "LLLL", Locale.getDefault() ); dateFormat.format( date ); 

कुछ भाषाओं (उदाहरण के लिए रूसी) के लिए यह अकेला महीना नाम पाने का एकमात्र सही तरीका है।

यदि आप Calendar लिए getDisplayName उपयोग करते हैं या जनवरी के लिए DateFormatSymbols , तो यह आपको मिलता है:

января (जो एक पूर्ण तिथि स्ट्रिंग के लिए सही है: " 10 जुलाई, 2014 ")

लेकिन एक स्टैंड-अलोन महीने के नाम के मामले में आप उम्मीद करेंगे:

январь

इस रूप में सरल रूप में

 mCalendar = Calendar.getInstance(); String month = mCalendar.getDisplayName(Calendar.MONTH, Calendar.LONG, Locale.getDefault()); 

मैं यह उत्तर रखता हूं जो अन्य मामलों के लिए उपयोगी होता है, लेकिन @trutheality उत्तर सबसे सरल और प्रत्यक्ष तरीका लगता है।

आप DateFormatSymbols का उपयोग कर सकते हैं

 DateFormatSymbols(Locale.FRENCH).getMonths()[month]; // FRENCH as an example 

एपीआई मुद्दों में भाग गया, इसलिए मैंने अपना खुद बनाया:

 public static String getDate(){ Time today = new Time(Time.getCurrentTimezone()); today.setToNow(); System.out.println(today.month); return today.monthDay+", "+ getMonthName(today.month) +" "+today.year; } public static String getMonthName(int month){ switch(month+1){ case 1: return "Jan"; case 2: return "Feb"; case 3: return "Mar"; case 4: return "Apr"; case 5: return "May"; case 6: return "Jun"; case 7: return "Jul"; case 8: return "Aug"; case 9: return "Sep"; case 10: return "Oct"; case 11: return "Nov"; case 12: return "Dec"; } return ""; } 

एंड्रॉइड पर एकमात्र तरीका है कि ऐसी भाषा के लिए ठीक से प्रारूपित स्टैनालोन महीने का नाम, जैसे यूक्रेनी, रूसी, चेक

 private String getMonthName(Calendar calendar, boolean short) { int flags = DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_NO_MONTH_DAY | DateUtils.FORMAT_NO_YEAR; if (short) { flags |= DateUtils.FORMAT_ABBREV_MONTH; } return DateUtils.formatDateTime(getContext(), calendar.getTimeInMillis(), flags); } 

एपीआई 15-25 पर परीक्षण किया गया

मई के लिए उत्पादन मेई है, लेकिन नहीं मैरा

मैं Calendar ऑब्जेक्ट और Locale का प्रयोग करने की सलाह Locale क्योंकि महीने के नाम विभिन्न भाषाओं के लिए अलग हैं:

 // index can be 0 - 11 private String getMonthName(final int index, final Locale locale, final boolean shortName) { String format = "%tB"; if (shortName) format = "%tb"; Calendar calendar = Calendar.getInstance(locale); calendar.set(Calendar.MONTH, index); calendar.set(Calendar.DAY_OF_MONTH, 1); return String.format(locale, format, calendar); } 

पूर्ण माह के नाम का उदाहरण:

 System.out.println(getMonthName(0, Locale.US, false)); 

परिणाम: January

लघु महीने के नाम का उदाहरण:

 System.out.println(getMonthName(0, Locale.US, true)); 

परिणाम: Jan

एक स्टैंडअलोन महीने का नाम प्राप्त करना, जावा में "दाएं" करने के लिए आश्चर्यजनक रूप से मुश्किल है (कम से कम इस लेखन के रूप में। मैं वर्तमान में जावा 8 का उपयोग कर रहा हूं)।

समस्या यह है कि कुछ भाषाओं में, रूसी और चेक सहित, महीने के नाम के स्वसंपूर्ण संस्करण "स्वरूपण" संस्करण से भिन्न है। साथ ही, ऐसा लगता है कि कोई भी जावा एपीआई आपको "सर्वश्रेष्ठ" स्ट्रिंग नहीं देगी। अधिकांश उत्तर यहां पोस्ट किए गए हैं, अब तक केवल फ़ॉर्मेटिंग संस्करण प्रदान करते हैं। एक महीने के नाम के स्वसंपूर्ण संस्करण प्राप्त करने, या उन सभी के साथ एक सरणी प्राप्त करने के लिए नीचे पेस्ट किया गया कार्य समाधान है

मुझे उम्मीद है कि यह किसी और को कुछ समय बचाता है!

 /** * getStandaloneMonthName, This returns a standalone month name for the specified month, in the * specified locale. In some languages, including Russian and Czech, the standalone version of * the month name is different from the version of the month name you would use as part of a * full date. (Different from the formatting version). * * This tries to get the standalone version first. If no mapping is found for a standalone * version (Presumably because the supplied language has no standalone version), then this will * return the formatting version of the month name. */ private static String getStandaloneMonthName(Month month, Locale locale, boolean capitalize) { // Attempt to get the standalone version of the month name. String monthName = month.getDisplayName(TextStyle.FULL_STANDALONE, locale); String monthNumber = "" + month.getValue(); // If no mapping was found, then get the formatting version of the month name. if (monthName.equals(monthNumber)) { DateFormatSymbols dateSymbols = DateFormatSymbols.getInstance(locale); monthName = dateSymbols.getMonths()[month.getValue()]; } // If needed, capitalize the month name. if ((capitalize) && (monthName != null) && (monthName.length() > 0)) { monthName = monthName.substring(0, 1).toUpperCase(locale) + monthName.substring(1); } return monthName; } /** * getStandaloneMonthNames, This returns an array with the standalone version of the full month * names. */ private static String[] getStandaloneMonthNames(Locale locale, boolean capitalize) { Month[] monthEnums = Month.values(); ArrayList<String> monthNamesArrayList = new ArrayList<>(); for (Month monthEnum : monthEnums) { monthNamesArrayList.add(getStandaloneMonthName(monthEnum, locale, capitalize)); } // Convert the arraylist to a string array, and return the array. String[] monthNames = monthNamesArrayList.toArray(new String[]{}); return monthNames; }