2013-06-18 35 views
5

Tôi có thể kéo email, đi qua chúng, đánh dấu chúng là đã đọc, thậm chí sắp xếp. Tuy nhiên, khi tôi cố gắng hạn chế bởi ReceivedTime, nó dường như không hoạt động. Tôi nhận được không có gì trở lại không có vấn đề gì ngày/thời gian tôi đưa vào. Tôi biết ReceivedTime là hợp lệ dựa trên các công trình sắp xếp khi tôi loại bỏ các hạn chế. Bất kỳ đề xuất?Microsoft.Office.Interop.Outlook.Items.Restrict - không hoạt động chính xác

Application app = new Application(); 
NameSpace outlookNs = app.GetNamespace("MAPI"); 

Microsoft.Office.Interop.Outlook.Folders folders = outlookNs.Folders[ohOptions.PSTName].Folders 
Microsoft.Office.Interop.Outlook.Items items = folders["Inbox"].Items; 

DateTime dt = DateTime.Now.Subtract(new TimeSpan(1,0,0)); 
items = items.Restrict("[ReceivedTime] > '" + dt.ToString("MM/dd/yyyy hh:mm:ss tt") + "'"); 

items.Sort("[ReceivedTime]", OlSortOrder.olAscending); 

foreach (MailItem item in items) 
{ 
    String from = item.SenderEmailAddress; 
} 

Trả lời

9

Đã tìm thấy sự cố. Chỉ mất ba ngày vì dường như không có bất kỳ điều gì đề cập đến định dạng cho những ngày/giờ này. Có vẻ như nó không giống như giây hoặc AM/PM ở đó. Sử dụng thời gian quân sự và tước các giây cho phép nó hoạt động chính xác.

items = items.Restrict("[ReceivedTime] > '" + dt.ToString("MM/dd/yyyy HH:mm") + "'"); 
+1

Sử dụng dòng chính xác này và nó không hoạt động đối với tôi. Tôi muốn họ tài liệu này tốt hơn, chỉ đơn giản là việc tìm kiếm định dạng ngày là một nỗi đau. – Joe

+0

Bài viết này chỉ đơn giản sử dụng DateTime.ToString ("g") mà cũng làm việc cho tôi. https://msdn.microsoft.com/en-us/library/office/gg619398.aspx –

0

Đảm bảo định dạng ngày địa phương hiện tại thực sự là MM/dd/yyyy, chứ không phải dd/MM/yyyy.

+0

Đã kiểm tra và không phải là vấn đề. – Switch

Các vấn đề liên quan