2010-06-11 4 views
18

Joda Time 또는 Java 자체에 int 또는 String을 인자로 취하는 메소드가 있는지 아는 사람 있습니까? 4 또는 "4"로 설정하고 월 이름을 짧은 형식으로 다시 표시합니다 (예 : 1 월의 JAN?Joda Time에서 짧은 달 이름을 얻는 방법?

긴 월 이름이 잘리고 대문자로 변환 될 수 있다고 가정합니다.

답변

56

Jon의 답변에 대한 응답으로 Joda의 datetime 클래스에 대한 직접 액세스를 사용하면 더 간단하게 할 수 있습니다.

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

또는 특정 로케일에 대한'String month = date.toString ("MMM", Locale.US)'. – Pang

15

나는 "MMM"이 Joda에서 달 이름을 줄 것이라고 믿지만 ... 적절한 포매터를 먼저 만들어야합니다. 내 상자에 "4 월"을 인쇄하는 샘플 코드가 있습니다. (당신은 물론 관련 로케일을 지정할 수 있습니다.)

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은 Joda 시간을 내부적으로 사용합니까? –

+3

@mP : 예, 있습니다. –

-2

이 것이 될 필요한 것보다 좀 더 복잡한 java.util.Calendar을 한 사용에 대한 내 마지막 대답을. 여기에 더 간단한 버전이 있지만 Java 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

관련 문제