2017-01-02 9 views
0

저는 mongodb에 초보자입니다. 현재 날짜를 기준으로 문서를 검색하기 위해 데이터베이스를 쿼리하는 동안 몇 가지 문제가 있습니다. 데이터베이스에 문서를 저장하는 동안 , 나는오늘 날짜를 기준으로 Mongo db 컬렉션에서 문서 가져 오기

SimpleDateFormat sdf=new SimpleDateFormat("MM/dd/yyyy"); 
sdf.setTimeZone(TimeZone.getTimeZone("GMT")); 
Date d = sdf.parse(billingDate); 

를 사용하여 billingDate 필드를 설정하고하는 것은 그래서 내 데이터베이스의 날짜 필드는 다음과 같이 내가 쿼리하려고

"billingDate" : ISODate("2017-01-02T00:00:00Z") 

:

Query query=new Query(); 
query.addCriteria(Criteria.where("billingDate").lte(new java.util.Date())); 

위의 쿼리를 실행하면 이전 청구서도 받게되지만 오늘은 필요합니다 (타임 스탬프는 고려하지 않으려 고합니다). 현재 날짜의 청구서 만 받도록 도와주세요. 어떤 제안이라도 알 수 있습니다.

+0

어떤 Jdk 버전을 사용하십니까? – Veeram

+0

Jdk 버전은 1.8입니다. – Manju

답변

1

사용이 뭔가를 시도 할 수 있습니다. 그러면 UTC로 자정으로 설정된 시간의 현재 날짜가 표시됩니다.

LocalDate localDate = LocalDate.now(); 
LocalDateTime localDateTime = LocalDateTime.of(localDate, LocalTime.MIDNIGHT); 
Instant instant = localDateTime.toInstant(ZoneOffset.UTC); 
Date date = Date.from(instant); 
+0

안녕하세요 Sagar, 답장을 보내 주셔서 감사합니다. 코드가 부분적으로 나를 위해 일했고, 오늘도 청구서를 받고 있습니다. 미래의 청구서도 같이 보내고 있습니다 .-(그래서 어떻게해야합니까? 오늘은 어떤 타임 스탬프도없고 미래의 날짜도 없다. – Manju

+0

내가 제공 한 대답은 타임 스탬프를 고려하지 않기 때문에 "오늘은 타임 스탬프가 없다"라는 것이 무슨 뜻인지 잘 모르겠다. – Veeram

+0

빠른 응답을 보내 주셔서 감사합니다. Sagar :-) 예, 괜찮습니다.하지만 미래의 청구서도 받고 있으므로 피할 수있는 방법을 알려 주시기 바랍니다. – Manju