2012-03-18 4 views
1
내가 이상한 결과를 검색하고 있습니다

: 다음모호한 결과 날짜 자바

Date d = new Date(d,m,y); 

:

GregorianCalendar g = new GregorianCalendar(); 
int m = g.get(Calendar.DAY_OF_MONTH); 
int d = g.get(Calendar.DAY_OF_WEEK); 
int y = g.get(Calendar.YEAR); 

그럼 내가 새로운 객체 Date를 만듭니다

먼저 내가 GregorianCalendar 사용하여 현재 날짜를 얻을 다음과 같이 함께 인쇄하십시오.

System.out.println(d+" - "+m+" - "+y+" - "+d); 
(210)

와 나는 얻을 : 왜

1 - 18 - 2012 - Thu Jan 02 00:00:00 CET 1908 

당신은 나를 설명 할 수 있습니까? deprecated 메소드 Date(day,mouth,year) 용입니까? 그렇다면 매개 변수를 사용하여 두 Date를 어떻게 비교할 수 있습니까?

+2

'일 D = 새로운 날짜 (d, m, y)를, '? 아니, 나는 그렇게 생각하지 않는다. – skaffman

답변

2

그런 다음 나는 새 개체 생성 날짜 :

Date d = new Date(d,m,y); 

생성자의 인수의 순서입니다 year, month, date, 아무것도. the documentation에서

:

Date(int year, int month, int day)


어떻게 매개 변수가 사용하여 두 개의 날짜를 비교할 수 있는가?

는 두 Date의 비교하는 방법을에 따라 다릅니다. 어느 것이 먼저 나오는지 알고 싶다면 Date.beforeDate.after을 사용할 수 있습니다.

앞서 언급했듯이 Date 클래스는 으로 축약되었습니다.입니다. 당신이 GregorianCalendar에서 새 Date 오브젝트를 취득해야하는 경우 (더 나은 아직 Joda Time library 또는)

+0

당신 덕분에! 이것은 내 오류였습니다 :) – JackTurky

1

를 대신 Calendar 클래스를 사용하여 다음을 수행하십시오

Date d = g.getTime(); 

을 이러한 방법으로, 당신은 할 수 없습니다 사용되지 않는 메소드를 사용하면 예상 한 결과가됩니다. 또한 현재 날짜를 알아야 할 경우 new Date()으로 작성하고 GregorianCalendar은 필요하지 않습니다.

날짜 비교는 DatecompareTo(), after()before() 방법을 사용할 수 있습니다. 다시 말하지만, GregorianCalendar은 필요 없습니다.

0

캘린더를 만든 다음 Date 개체를 사용하여 시간을 설정하면 원하는 정보를 얻을 수 있습니다.

예 :

Calendar cal = Calendar.getInstance(); 
cal.setTime(new Date()); 
int day = cal.get(Calendar.DAY_OF_MONTH); 
// and so on.... 
+0

로케일이 그레고리 안 캘린더를 사용하는 경우 Calendar.getInstance()는 GregorianCalendar 인스턴스를 반환합니다. 확실하지 않은 경우 Calendar cal = new GregorianCalendar(); 새로운 GregorianCalendar (년, 월, 일)를 작성한 다음 Calendar 메소드 getTime()을 호출하여 Date 객체를 가져올 수도 있습니다. – Renato