Я думаю, ваша проблема в том, что вы передаете формат вручную. Из этого сообщения. (выделено мной)
Формат, используемый Outlook, соответствует шаблону General (короткая дата и короткое время) в классе DateTimeFormatInfo. Если вы используете метод Parse структуры DateTime, вы должны быть уверены, что аргумент метода Parse соответствует краткому формату даты и времени для текущей локали. Если вы используете конструктор для структуры DateTime, вам необходимо указать аргументы года, месяца, дня, часа, минуты и секунды, а затем использовать метод ToString со спецификатором формата "g" для преобразования значения даты и времени. в короткую строку даты и времени, ожидаемую Outlook. Аргумент спецификатора даты для метода ToString чувствителен к регистру, поэтому обязательно используйте «g» в качестве спецификатора формата. Когда вы используете конструктор DateTime и описатель формата "g" в методе ToString, вы создаете литерал даты и времени, который будет правильно интерпретироваться Outlook.
Я бы создал фильтры, как в ссылке, создав объект DateTime
, а затем преобразовав его в строку, используя параметр "g"
. Из документации:
string searchCriteria = String.Format("\"urn:schemas:httpmail:datereceived\" >= '{0}'", new DateTime(2005, 6, 12, 15, 30, 0).ToString("g"))
Таким образом, вы можете быть уверены, что дата будет правильно отформатирована в соответствии с культурой системы, в которой выполняется запрос.
Примечание. Помните, что регистр чувствителен к регистру, поэтому вы должны использовать "g", а не "G".
person
Dzyann
schedule
03.01.2018