Tryparse не работает для меня, и ParseExact работает, но не работает, если включено дополнительное пространство - PullRequest
0 голосов
/ 21 сентября 2018

Tryparse не работает для меня, и ParseExact работает, но не работает, если включено дополнительное пространство:

//Tryparse
string dateTimeString = "Sep 10 08:19";
DateTime dateAndTime;

if (DateTime.TryParse(dateTimeString, out dateAndTime))
{
    string temp = dateAndTime.ToString();   //"9/21/2018 10:08:00 AM" ??????? why?
}

//ParseExact works fine but it won't work with extra spaces in the date
string format = "MMM d HH:mm";
//dateTimeString = "Sep 10 08:19"; //works fine with this string
dateTimeString   = "Sep  9 08:19"; //notice extra extra space between "Sep" and "9"
dateAndTime = DateTime.ParseExact(dateTimeString, format, System.Globalization.CultureInfo.InvariantCulture); //Exception here
string temp2 = dateAndTime.ToString();

Есть идеи?Спасибо

1 Ответ

0 голосов
/ 21 сентября 2018

Итак, во-первых, вы должны использовать TryParseExact() вместо ParseExact(), поскольку это правильный метод, сравнимый с TryParse().

Затем вам просто нужно передать дополнительный параметр в ваш метод,Значение DateTimeStyles DateTimeStyles.AllowWhiteSpaces:

if(DateTime.TryParseExact(
   "Sep 10 08:19", 
   "MMM d HH:mm", 
   CultureInfo.InvariantCulture, 
   DateTimeStyles.AllowWhiteSpaces, 
   out dateAndTime))
{
    //Parsed correctly, do something
}

Fiddle здесь

...