다음과 같은 조건이 예 start_date = 08-03-2011
및 end_date = 10-03-2011
에 대한 말 즉자바 날짜 확인
if(system_date >=start_date){
if(system_date<=End_date){
//Do some thing
}
}
만족하는 경우에만 나는 페이지를 표시해야합니다.
나는 이것을 파악할 수 없다. 친절하게 도와주세요.
다음과 같은 조건이 예 start_date = 08-03-2011
및 end_date = 10-03-2011
에 대한 말 즉자바 날짜 확인
if(system_date >=start_date){
if(system_date<=End_date){
//Do some thing
}
}
만족하는 경우에만 나는 페이지를 표시해야합니다.
나는 이것을 파악할 수 없다. 친절하게 도와주세요.
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 :
현재 Joda는 표준 날짜 관련 클래스의 유일한 대체 사운드입니다. 또한 많은 유틸리티 기능과 함께 훨씬 뛰어나고 이해하기가 더 쉽습니다. – Anonymous
Date now = new Date();
if ((now.after(startDate) || now.equals(startDate)) && ((now.before.endDate) || now.equals(endDate))
{
// do something
}
Joda Time은 매우 좋지만이 간단한 요구 사항이 다른 JAR 종속성에 가치가 있는지 여부에 대해 동의해야합니다. 때때로 당신은 단순한 것을 필요로합니다. 외부 lib 디렉토리를 사용하지 않으려면 날짜 확인이 링크에
종속성을 가지지 않는 * 정말로 * 좋은 이유가 없다면, 할 일이 거의 없으면 Joda를 포함 시키겠다. 추가 jar 파일의 비용과 API가 훨씬 더 잘 설계되어 있다는 가독성 이점은 무엇입니까? –
@ 존 - 동의 하겠지만, 명시된 요구 사항 만 필요한 날짜/시간 작업 인 경우 보류하고 싶을 수도 있습니다. – duffymo
Joda의 thread-safe 포매터 등을 사용하면 더 쉽게 파싱을 할 수 있습니다. –
, 당신은 주어진 날짜에서 달력을 만들 Calendar
의 setTime()
을 사용할 수 있습니다 두 개의 달력 인스턴스를 비교하려면 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
}
물론 캘린더 인스턴스를 만들 때 시간대와 로캘을 관리해야합니다.
joda-time을 사용해보십시오. – OrangeDog
실제 문제는 무엇입니까? 날짜를 파싱 하시겠습니까? 비교 논리를 쓰고 있니? –
실제로 저는 dd-MM-yyyy 형식의 데이터베이스에서 시작 날짜와 종료 날짜를 얻었으며 시스템 날짜와 비교해야했습니다. – SHV