2017-01-02 4 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

関連する問題