2010-06-11 12 views
18

क्या किसी को पता है कि जोडा समय या जावा में कोई तरीका है जो या तो एक int या स्ट्रिंग को तर्क के रूप में लेता है, उदा। 4 या "4" और महीने का नाम संक्षिप्त प्रारूप में वापस देता है, यानी जनवरी के लिए जनवरी?जोडा समय में कम महीने के नाम कैसे प्राप्त करें?

मुझे लगता है कि लंबे महीने के नामों को छोटा कर दिया जा सकता है और ऊपरी मामले में परिवर्तित किया जा सकता है।

उत्तर

56

जॉन के उत्तर के जवाब में, आप डेटाटाइम कक्षाओं के लिए जोडा की सीधी पहुंच का उपयोग करके और सरल बना सकते हैं।

String month = date.toString("MMM"); 
+1

या 'स्ट्रिंग माह = date.toString (" MMM ", Locale.US) 'एक विशिष्ट लोकेल के लिए। – Pang

15

मेरा मानना ​​है कि "एमएमएम" जोडा में महीने का नाम देगा ... लेकिन आपको पहले एक उचित फॉर्मेटर बनाना होगा। यहां कुछ नमूना कोड दिया गया है जो मेरे बॉक्स पर "अप्रैल" प्रिंट करता है।

import org.joda.time.*; 
import org.joda.time.format.*; 

public class Test 
{ 
    public static void main(String[] args) 
    { 
     // Year and day will be ignored 
     LocalDate date = new LocalDate(2010, 4, 1); 
     DateTimeFormatter formatter = DateTimeFormat.forPattern("MMM"); 
     String month = formatter.print(date); 
     System.out.println(month); 
    } 
} 
+0

बहुत धन्यवाद। मुझे बाद में इसकी आवश्यकता होगी। –

+0

क्या Google आंतरिक रूप से जोडा-टाइम का उपयोग करता है? –

+3

@ एमपी: हाँ, हम करते हैं। –

-2

इस के लिए java.util.Calendar का उपयोग कर एक छोटे से अधिक जटिल की तुलना में यह हो सकता है की जरूरत थी के बारे में मेरे पिछले जवाब (आप निश्चित रूप से प्रासंगिक भाषा निर्दिष्ट कर सकते हैं।)। यहां एक सरल संस्करण है, हालांकि इसे अभी भी जावा 6 या नए की आवश्यकता है।

import java.util.Calendar; 
import java.util.Locale; 

public class Test 
{ 
    public static void main(String[] args) 
    { 
     // Sample usage. 
     // Should be "Apr" in English languages 
     String month = getMonthNameShort(4); 
     System.out.println(month); 
    } 
    /** 
    * @param month Month number 
    * @return The short month name 
    */ 
    public static String getMonthNameShort(int month) 
    { 
     Calendar cal = Calendar.getInstance(); 
     // Calendar numbers months from 0 
     cal.set(Calendar.MONTH, month - 1); 
     return cal.getDisplayName(Calendar.MONTH, Calendar.SHORT, Locale.getDefault()); 
    } 
} 
0
LocalDateTime fecha_sistema = LocalDateTime.now(); 

// return month value betwen 1 to 12 
int month = fecha_sistema.getMonthValue(); 

// return month name 
String mes = fecha_sistema.getMonth().name(); 

System.out.println("Month" + mes + "/ " + month); 
2

हम निम्नलिखित के रूप में कर सकते हैं:

DateTime dt = new DateTime(); // current time 
String monthStr = dt.month().getAsShortText(); // gets the month name 

इसके अलावा, आप लंबे महीने के नाम के लिए getAsText() विधि का उपयोग कर सकते हैं।

Reference

संबंधित मुद्दे