Преобразование строки во время - PullRequest
2 голосов
/ 06 октября 2010

У меня есть строка вроде этого: «0: 385» (первое число - секунды, следующие числа - миллисекунды), я хочу использовать в datagridview с сортировкой как числа (не как строки), поэтому я пытаюсь сделать DateTime из строкино я не уверен, как именно это сделать.Я знаю, что должен использовать метод Parse (или ParseExact), но когда я попробовал его, он говорит: «String не был распознан как допустимый DateTime».Я читал некоторые статьи об этом, но я не уверен, как именно использовать IFormatProvider и следующие аргументы.Спасибо за помощь

Ответы [ 4 ]

6 голосов
/ 06 октября 2010

Вы можете использовать следующее: TimeSpan.Parse("0:0:0.365")

Но вы должны отформатировать строку следующим образом: [d.] Чч: мм: сс [.ff] (день [d] и доли секунды [ff] являются необязательными)

См. TimeSpan.Parse Метод на MSDN

4 голосов
/ 06 октября 2010

Так как вы пропускаете день, месяц и год в вашей строке, вы не сможете проанализировать ее в DateTime.

Попробуйте вместо этого использовать TimeSpan.

0 голосов
/ 11 июля 2014

Пожалуйста, попробуйте это,

 var dt = new DateTime(2010, 06, 26); // time is zero by default
 string currTime = "19:04:06";//dateTimePicker1.Value.TimeOfDay.ToString();
 var tm = TimeSpan.Parse(currTime);
 var fullDt = dt + tm;  
0 голосов
/ 06 октября 2010

TimeSpan.Parse ("0: 0: 0" + str.Replace (':', '.'))

...