Я не могу воспроизвести вашу проблему. Следующий код работает для меня, без изменений в части дня:
DateTime dt = DateTime.Parse("3/8/2011 12:00:00 AM", CultureInfo.GetCultureInfo("en-US"));
Assert.AreEqual(new DateTime(2011, 3, 8), dt);
Пожалуйста, попробуйте опубликовать фактический код, который воспроизводит вашу проблему.
UPDATE:
Теперь, когда вы опубликовали код, я могу сказать следующее:
Ваш код, кажется, не имеет смысла. Почему?
Потому что ваш код будет выполнять только предложение if
, если значение равно DateTime
. Но в этом случае вы сначала каким-то образом конвертируете его в текст с GetFieldValueAsText
и анализируете этот текст обратно в DateTime
. Просто используйте value
напрямую.
Во всяком случае, даже с этим странным кодом, он должен работать, если field.GetFieldValueAsText(value)
будет работать правильно, что я сомневаюсь, что это работает. Вы проверили, что он действительно возвращает правильную строку?