2014-12-11 1 views
6

이 내 코드입니다 : 달이 문장의 경우에 있어야SimpleDateFormat을 사용하여 문장의 대문자로 스페인어 달의 서식을 지정하는 방법은 무엇입니까?

/* package whatever; // don't place package name! */ 

import java.util.*; 
import java.lang.*; 
import java.io.*; 
import java.text.SimpleDateFormat; 

/* Name of the class has to be "Main" only if the class is public. */ 
class Ideone 
{ 
    public static void main (String[] args) throws java.lang.Exception 
    { 
     SimpleDateFormat date = new SimpleDateFormat("dd-MMM-yyyy", new Locale("es","ar")); 
     System.out.println(date.format(new Date(2014-1900,0,1))); 
    } 
} 

위의 코드를 반환,

01-ene-2014 

그러나, 즉 ENE

사람이 어떻게 나를 도울 수 하위 문자열을 사용하지 않고 01-Ene-2014을 얻을 수 있습니까?

답변

11

이것은 버그가 아닙니다.

SimpleDateFormat은 로컬 규칙에 따라 월 이름과 대문자를 사용합니다.

영어 문법 규칙에서와 같이 대문자로 된 첫 글자를 사용하는 필자는 필수입니다.

스페인어로는 동일하지 않습니다. 월 이름은 소문자로 사용해야합니다. Java는 로컬 규칙을 사용합니다. 스페인어에 대한 규칙은 예를 들어 RAE (Royal Academy of spanish language)로 정의됩니다.

또한 사용자 정의 규칙을 사용하여 사용자 정의 로켈을 작성할 수는 없지만 클래스 DateFormatSymbols를 사용하여 개인적인.

DateFormatSymbols sym = DateFormatSymbols.getInstance(baseLocale); 
sym.setShortMonths(new String[]{"Ene","Feb","Mar", /* and others */ }); 
new SimpleDateFormat(aPattern, sym); 

전체 예 : http://ideone.com/R7uoW0

관련 문제