2011-03-02 4 views
0

다음과 같은 조건이 예 start_date = 08-03-2011end_date = 10-03-2011에 대한 말 즉자바 날짜 확인

if(system_date >=start_date){ 
if(system_date<=End_date){ 
    //Do some thing 
} 
} 

만족하는 경우에만 나는 페이지를 표시해야합니다.

나는 이것을 파악할 수 없다. 친절하게 도와주세요.

+1

joda-time을 사용해보십시오. – OrangeDog

+0

실제 문제는 무엇입니까? 날짜를 파싱 하시겠습니까? 비교 논리를 쓰고 있니? –

+0

실제로 저는 dd-MM-yyyy 형식의 데이터베이스에서 시작 날짜와 종료 날짜를 얻었으며 시스템 날짜와 비교해야했습니다. – SHV

답변

1

OrangeDog에서 제안하는대로 Joda Time을 사용합니다.

당신은 만들 수 DateTime 또는 시작 날짜 및 종료 날짜에 대한 Instant 다음과 같이 사용도

if (startDate.isBeforeNow() && endDate.isAfterNow()) 

혹은

DateTime now = new DateTime(); // Possibly provide time zone etc if you want 
if (startDate.compareTo(now) <= 0 && now.compareTo(endDate) <= 0) 

또는 :

Interval valid = new Interval(startDate, endDate); 
if (valid.containsNow()) 

기본적으로 정확한 요구 사항에 따라 다양한 옵션이 있습니다. ents :

+0

현재 Joda는 표준 날짜 관련 클래스의 유일한 대체 사운드입니다. 또한 많은 유틸리티 기능과 함께 훨씬 뛰어나고 이해하기가 더 쉽습니다. – Anonymous

3
Date now = new Date(); 
if ((now.after(startDate) || now.equals(startDate)) && ((now.before.endDate) || now.equals(endDate)) 
{ 
    // do something 
} 

Joda Time은 매우 좋지만이 간단한 요구 사항이 다른 JAR 종속성에 가치가 있는지 여부에 대해 동의해야합니다. 때때로 당신은 단순한 것을 필요로합니다. 외부 lib 디렉토리를 사용하지 않으려면 날짜 확인이 링크에

+0

종속성을 가지지 않는 * 정말로 * 좋은 이유가 없다면, 할 일이 거의 없으면 Joda를 포함 시키겠다. 추가 jar 파일의 비용과 API가 훨씬 더 잘 설계되어 있다는 가독성 이점은 무엇입니까? –

+0

@ 존 - 동의 하겠지만, 명시된 요구 사항 만 필요한 날짜/시간 작업 인 경우 보류하고 싶을 수도 있습니다. – duffymo

+1

Joda의 thread-safe 포매터 등을 사용하면 더 쉽게 파싱을 할 수 있습니다. –

0

, 당신은 주어진 날짜에서 달력을 만들 CalendarsetTime()을 사용할 수 있습니다 두 개의 달력 인스턴스를 비교하려면 compareTo을 사용하십시오.

Calendar start = Calendar.getInstance(); 
start.setTime(startDate); 

Calendar current = Calendar.getInstance(); 
current.setTime(systemDate); 

Calendar end = Calendar.getInstance(); 
end.setTime(endDate); 

if (current.compareTo(start) > 0 && current.compareTo(end) < 0) { 
    //Do some thing 
} 

물론 캘린더 인스턴스를 만들 때 시간대와 로캘을 관리해야합니다.