2010-06-11 14 views
18

Joda Time veya Java'nın kendisinde bir argüman olarak bir int veya String alan bir yöntem olup olmadığını herkes biliyor mu? 4 veya "4" ve ayın ismini kısa biçimde, yani Ocak ayı için JAN olarak geri verir misiniz?Joda Time'da kısa ay isimleri nasıl alınır?

Uzun ay adlarının kısaltıp büyük harfe dönüştürülebileceğini varsayalım.

cevap

56

, daha fazla datetime sınıflar için joda en doğrudan erişim kullanarak bu kolaylaştırabilir.

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

Veya 'Dize ay = date.toString (" MMM ", Locale.US)". – Pang

15

"MMM" nin Joda'da ay adını vereceğine inanıyorum ... ama önce uygun bir biçimlendirici oluşturmanız gerekiyor. İşte kutumda "Apr" yazan bir örnek kod var. (Elbette, ilgili yerel belirtebilirsiniz.)

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

Çok teşekkürler. Buna daha sonra ihtiyacım olacak. –

+0

Google, Joda'yı dahili olarak kullanıyor mu? –

+3

@mP: Evet, yapıyoruz. Belirli bir yerel ayar için –

-2

bunun için olması gerekenden daha biraz daha karmaşık java.util.Calendar edildi kullanma konusunda Benim son cevap. İşte daha basit bir sürümü, yine de Java 6 veya daha yeni bir sürümünü gerektirir. Jon'un yanıta yanıt

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

Biz aşağıdaki gibi yapabilirsiniz:

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

Ayrıca uzun ay adı için getAsText() yöntemi kullanabilirsiniz.

Reference