2017-03-21 23 views
0

Java EWS APIを使用していますが、Exchange ServerのメッセージをAQS文字列で検索する際に問題が発生しています。AQSを使用したExchange Webサービスの日付と時刻で検索

特定の日付と時刻の後に受信したすべてのメッセージを取得する必要があります。 すべてが正常に動作している日付だけを渡すと、時間が過ぎると問題が発生しています。 私はクエリで使用する必要のあるフォーマットについてはわかりません。このセクションではドキュメントが欠けています。ここで

は私のコードです:

protected static void searchByCategoryAndDateOldVersion() throws Exception{ 
    ItemView view = new ItemView(Integer.MAX_VALUE); 
    view.getOrderBy().add(ItemSchema.DateTimeReceived, SortDirection.Ascending); 

    String aqs = "category:categoryToSearch AND received:>=2017-03-21T10:35:00"; 

    FindItemsResults<Item> findResults = service.findItems(WellKnownFolderName.Inbox, aqs, view); 

    service.loadPropertiesForItems(findResults, PropertySet.FirstClassProperties); 

    System.out.println("Items found: " + findResults.getTotalCount()); 

    for (Item item : findResults) { 
     System.out.println(item.getSubject()); 
    } 

} 

私が言ったように、私は設定した場合、paramはT10せずに受信:35:00の部分は、すべての作品。

特定の時間後にメッセージのみを取得するようにEWSに指示するにはどうすればよいですか?

P.S.使用しているExchangeのバージョンがSearchFilterでのカテゴリ検索をサポートしていないため、AQSを使用する必要があります。

答えて

0

だけで、カレンダーの変数を追加したDateFormatでそれをフォーマットし、クエリ文字列に渡し:

protected static void searchByCategoryAndDateOldVersion() throws Exception{ 
    ItemView view = new ItemView(Integer.MAX_VALUE); 
    view.getOrderBy().add(ItemSchema.DateTimeReceived, SortDirection.Ascending); 

    Calendar calendar = new GregorianCalendar(2017, 2, 21, 10, 35, 0); 
    Date time = calendar.getTime(); 

    DateFormat dateFormat = new SimpleDateFormat(); 
    String dateLimit = dateFormat.format(time); 

    String aqs = String.format("category:categoryToSearch AND received:>=%s", dateLimit); 

    FindItemsResults<Item> findResults = service.findItems(WellKnownFolderName.Inbox, aqs, view); 

    service.loadPropertiesForItems(findResults, PropertySet.FirstClassProperties); 

    System.out.println("Items found: " + findResults.getTotalCount()); 

    for (Item item : findResults) { 
      System.out.println(item.getSubject()); 
    } 
} 
関連する問題