DateTime.TryParse () не работает в Windows 7 - PullRequest
3 голосов
/ 09 марта 2010

DateTime.TryParse не работает в Windows 7, когда мы меняем региональные настройки на итальянские. Я даже попробовал TryParseExact, но безуспешно Кто-нибудь имеет какие-либо идеи по этому поводу или сталкивался с этим типом сценария?

Код выглядит примерно так:

string[] formats = {"M/d/yyyy h:mm:ss tt", "M/d/yyyy h:mm tt", "MM/dd/yyyy hh:mm:ss", "M/d/yyyy h:mm:ss", "M/d/yyyy hh:mm tt", "M/d/yyyy hh tt", "M/d/yyyy h:mm", "M/d/yyyy h:mm", "MM/dd/yyyy hh:mm", "M/dd/yyyy hh:mm", "dd/MM/yyyy HH:mm"}; 
if (DateTime.TryParseExact(cb.Text, formats, CultureInfo.InVariantCulture, DateTimeStyles.AllowLeadingWhite, out date_and_time))

но возвращается false.

или

Даже попробовал:

if (DateTime.TryParse(cb.Text, CultureInfo.InvariantCulture, DateTimeStyles.None,out date_and_time) == true)` 

cb.Text - это строка, содержащая DateTime в строковом представлении.

Ответы [ 3 ]

0 голосов
/ 21 ноября 2010

В итальянском языке токен-разделитель разрешен. а не:

Попробуйте экранировать маркер разделителя времени в одинарных кавычках, например:

"M/d/yyyy h':'mm':'ss tt"
0 голосов
/ 27 мая 2013

Попробуйте установить Нить культуры в Italian Culture, используя CreateSpecificCulture метод.

См. Список культур здесь .

0 голосов
/ 09 марта 2010

Вы пытались позвонить с нейтральным CultureInfo?

Как это

DateTime parsed;

if(DateTime.TryParse("2010-03-09", CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed))
    Console.WriteLine(parsed)

Или для TryParseExact

DateTime.TryParseExact("2010-03-09", "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...