2014-04-28 2 views
1

아래에는 "Sat May 02 00:00:00 MST 1970"형식으로 날짜를 반환하는 코드가 있습니다 (05/02의 입력을받는 것으로 가정) . 이것을 "5 월 02 일"에 맞게 포맷하려면 어떻게해야합니까? 이 코드 블록이나 내 인쇄문에 여기 서식을 지정해도 상관 없습니다.SimpleDateFormat 출력의 서식을 지정하는 방법

현재 인쇄문은 System.out.print(Date.getAlphabetDate()입니다.

public static Date getAlphabetDate() 
{ 
    try 
    { 
     String tempDate = month + "/" + day; 
     Date alphabetDate = new SimpleDateFormat("M/d").parse(tempDate); 
     return alphabetDate; 
    } 
    catch(Exception e) 
    { 
     return null; 
    } 
} 

답변

4

자위대가하는 일에 오해하고 있습니다. 날짜 개체가 반환되며 해당 개체의 문자열 표현은 반환되지 않습니다. 그리고 Date 객체에는 관심이없는 모든 수하물이 있지만 반환 된 Date의 비슷한 String 표현을 얻으려면 단순히 동일하거나 유사한 SDF 객체를 사용하고 그것은 형식 날짜에 : 여담으로

String stringRep = mySDF.format(myDate); 

, 코드가 null을 반환하는 catch 블록 작성 될 때마다, 강아지 어딘가에 죽는다 있습니다.


예를 들어
편집,

import java.text.ParseException; 
import java.text.SimpleDateFormat; 
import java.util.Date; 

public class SdfFun { 
    private static final String PATTERN = "MM/dd"; 
    private static final SimpleDateFormat SDF = new SimpleDateFormat(PATTERN); 

    public static Date getAlphaDate(int month, int day) throws ParseException { 
     String tempDate = month + "/" + day; 
     return SDF.parse(tempDate); 
    } 

    public static void main(String[] args) { 
     Date date = null; 
     try { 
     date = getAlphaDate(2, 16); 

     System.out.println(SDF.format(date)); 
     } catch (ParseException e) { 
     e.printStackTrace(); 
     } 
    } 

} 
+0

를 어떻게이를 구현하는 나에게 보여 주시겠습니까? 나는 당신이 내게 준 코드 예제를 어떻게 사용하는지 알지 못한다. 또한 나를 믿으십시오, 나는 널 반환을 싫어한다; 나는 try catch를 사용하지 않았을 것이지만, 그것은 과제를위한 것이고, 거기에 있어야합니다. – Kulahan

+0

@DanCallahan : 할당 여부와 관계없이 try/catch가 필요합니다. 단순히 예외를 무시하지 마십시오. 캐치가 중요합니다. 중요한 오류가 발견되면 최소한 스택 추적을 인쇄하는 경우 프로그램에 알림을 보내고 이에 응답해야합니다. 위의 예가 게시됩니다. 우리가 그들을 보지 못했기 때문에 당신의 임무 요구 사항에 맞는지 아닌지 잘 모르겠습니다. –

+0

내가 try/catch를 필요로하지 않는다고 말한 이유는 이전에 이것에 대해 엄청난 양의 오류를 검사했기 때문이며, 어쨌든 주위를 지키면 의미가 있다고 생각합니다. 그럼에도 불구하고 예를 들어 주셔서 감사합니다. 지금 구현하는 방법을 이해합니다! – Kulahan

관련 문제