2013-12-13 2 views
2

밀리 초와 시간 형식을 얻기 부분의 어느나는 기존의 자바 응용 프로그램을 현지화 일하고 있어요 로케일

DateFormat f2 = DateFormat.getTimeInstance(DateFormat.MEDIUM); 

좋은으로

DateFormat f2 = new SimpleDateFormat("h:mm:ss a"); 

같은 라인을 교체하는 것을 포함한다. 하지만 이제 다음을 지역화해야합니다.

DateFormat f1 = new SimpleDateFormat("h:mm:ss.SSS a"); 

직접 할 방법이 있습니까? 검색이 실패하고 있습니다. SimpleDateFormat으로 항상 캐스팅하여 패턴을 잡고 ssss.SSS으로 바꿀 수는 있지만 나중에는 중단 할 가능성이 적은 메서드를 사용하는 편이 낫습니다.

+0

제목에 주요 태그를 추가 할 필요가 없습니다를 확인

  • 자신의 상수를 정의합니다. –

    답변

    0

    예. 나는 두 가지 옵션을 생각할 수 있습니다 -

    1. 자신의 열거

    public static String MY_DATE_FORMAT = "HH:mm:ss.SSS a"; // a constant. 
    public static enum DATE_FORMATS { // a enum 
        SHORT, LONG, MEDIUM; 
        public String toString() { 
        switch (this) { 
        case SHORT: 
         return "HH:mm:ss"; // this should be loaded from a ResourceBundle. 
        case LONG: 
         return "HH:mm:ss.SSS a"; // this should be loaded from a ResourceBundle. 
        case MEDIUM: 
         return "HH:mm:ss.SSS"; // this should be loaded from a ResourceBundle. 
        } 
        return ""; 
        } 
    } 
    
    public static void main(String[] args) { 
        SimpleDateFormat sdf = new SimpleDateFormat(MY_DATE_FORMAT); // option 1 
        System.out.println(sdf.format(new Date())); 
        sdf = new SimpleDateFormat(DATE_FORMATS.SHORT.toString()); // option 2 
        System.out.println(sdf.format(new Date())); 
    } 
    
    +0

    이 부분이 어떻게 현지화를 처리하는지 이해하지 못하고 있습니다. 전화 할 때마다처럼 보입니다 sdf = new SimpleDateFormat (DATE_FORMATS.SHORT.toString()); 나는 그것이 적절한 지 아닌지에 따라 am/pm으로 시간을 갖습니다. –

    +0

    죄송합니다. [ResourceBundle] (http://docs.oracle.com/javase/6/docs/api/java/util/ResourceBundle.html)에서 실제 형식을로드합니다. –

    관련 문제