문제

좋아, 내 프로그램을 인쇄하고 데이트를 인쇄하고 싶다 : 1/1/2009

그러나 이것이 다음과 같은 인쇄입니다.

Thu 1 월 01 00:00:00 2009

이 코드에서

GregorianCalendar startDate = new GregorianCalendar(2009, Calendar.JANUARY, 1);
public void setStart()
{
    startDate.setLenient(false);
    Date date = new Date(startDate.getTimeInMillis());
    System.out.println(date);
}

2009 년 1 월 1 일에만 인쇄되도록하려면 어떻게 변경할 수 있습니까?

도움이 되었습니까?

해결책

사용 SimpleDateFormat:

GregorianCalendar startDate = new GregorianCalendar(2009, Calendar.JANUARY, 1);
public void setStart() {
  startDate.setLenient(false); 
  DateFormat df = new SimpleDateFormat("d/M/yyyy");
  df.format(startDate.getDate());
}

당신은 암시 적으로 전화합니다 toString() 전체 내용을 (올바르게) 인쇄하는 방법.

그건 그렇고, 당신이하는 방식으로 날짜를 만들 필요가 없습니다. 부름 getDate() a Calendar 반환 a Date 물체.

다른 팁

현재 Date.toString() 메소드가 표시되도록 요청됩니다 String 표현 GregorianCalendar 사례.

해야 할 일은 a를 만드는 것입니다 DateFormat a String 원하는 표현. 그만큼 DateFormat 객체를 사용하여 포맷 할 수 있습니다 Date 인스턴스를 사용하여 원하는 형식의 인스턴스 format 방법.

원하는 것을 달성하는 가장 간단한 방법은 SimpleDateFormat 클래스는 a 형식 문자열을 취하는 생성자 출력 Date 원하는 형태로.

Calendar calendar = new GregorianCalendar(2009, Calendar.JANUARY, 1);
DateFormat df = new SimpleDateFormat("M/d/yyyy");
System.out.println(df.format(calendar.getTime()));

산출

1/1/2009
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top