Что не так с DateTime. Синтаксический анализ (myString)?

Ваша проблема, скорее всего, связана с тем, что процессы, выполняемые в диспетчерской, выполняются намного быстрее, чем в студии, и ваша веб-страница может не загружаться вовремя (это объясняет, почему она работает после повторной попытки).

Оптимальный подход - добавить этап динамического ожидания после присоединения и использовать опцию «Parent Document Loaded» для элемента, с которым вы хотите взаимодействовать. Он будет ждать загрузки страницы, а затем проверяет наличие элемента. Я бы также предложил разделить ваше действие на два: сначала установить дату начала, а второе - дату окончания.

23
задан casademora 2 October 2008 в 13:44
поделиться

8 ответов

Кроме того, проблема локали, DateTime.Parse() могла также выдать исключение, которое необходимо будет тогда поймать. Используйте DateTime.TryParse() или DateTime.TryParseExact() вместо этого.

27
ответ дан 29 November 2019 в 01:30
поделиться

Используя культуру текущего потока в системе часто плохая идея, как "попытка множество форматов, и посмотрите, работает ли какой-либо из них".

ParseExact с определенной культурой является намного более управляемым и точным подходом. (Даже при определении текущей культуры она делает его более очевидным для читателей, что это - то, что продолжается.)

14
ответ дан 29 November 2019 в 01:30
поделиться

Как указано в MSDN:

Поскольку метод Parse (String) пытается проанализировать строковое представление даты и времени, используя правила форматирования текущей культуры, пытаясь проанализировать конкретную строку в разных культурах может либо потерпеть неудачу, либо вернуть разные результаты. Если определенный формат даты и времени будет проанализирован в разных локалях, используйте метод DateTime.Parse (String, IFormatProvider) или одну из перегрузок метода ParseExact и предоставьте спецификатор формата.

6
ответ дан 29 November 2019 в 01:30
поделиться

Тот вопрос состоит в том, чтобы только видеть, знает ли разработчик проблемы с этим. Сначала необходимо использовать TryParse, потому что Синтаксический анализ выдает исключение, если это unparseable. Также это не принимает локаль во внимание так в веб-сценарии, если британский Пользователь вводит 10.02.2008, и мой сервер использует локаль en-США, я получаю февраль 10,2008 вместо 2 октября 2008.

могли бы быть другие проблемы, но те - первые два, которые пришли на ум.

3
ответ дан 29 November 2019 в 01:30
поделиться

В дополнение к неизвестному пользовательскому вводу среда может быть неизвестна .., поэтому я предполагаю, что даже если вы управляете форматом ввода, ожидаемый синтаксический анализ может отличаться ..

1
ответ дан 29 November 2019 в 01:30
поделиться

Моя реакция пищеварительного тракта будет этим, Вы поражаете ее неизвестными форматами/источниками. Могут быть другие причины - например, от той одной строки, сделать мы знаем , что myString строка? (Я предполагаю, что это, конечно.)

Обычно я рекомендую метод TryParse вместо этого. Это является немного более подробным, но помогает предотвратить исключения - пока Ваш код ведет себя соответственно в случае недопустимого входа.

, Конечно, на основе Вашей формулировки к этому... Я предполагаю, что Вы уже знали все это.:)

1
ответ дан 29 November 2019 в 01:30
поделиться

это сообщение в блоге объясняет его , но общая вещь состоит в том, что нет никакого cultureinfo, связанного с синтаксическим анализом.

0
ответ дан 29 November 2019 в 01:30
поделиться

Ответ зависит от кода, который окружает DateTime.Parse (myString) и требований синтаксического анализа.

Возможно, вы уже проверили, является ли строка допустимым форматом, основанным на регулярном выражении, и вам может быть неинтересно в культурной информации. Вы также можете знать, что данные поступают из известного формата файла с известным соглашением о дате, поэтому исключение может быть именно тем, что вам нужно.

Без контекста вопрос довольно двусмысленный, и реальный ответ на него должен быть «это зависит от контекста, в котором используется код, относительно того, что с ним не так, если

0
ответ дан 29 November 2019 в 01:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: