У меня есть строка, такая как:
"+ 10:30", "+04: 50", "-10: 20"
, которыев формате часового пояса.Как я могу преобразовать его в TimeSpan и наоборот?
Я уже пытался использовать TimeSpan.Pars (..), но не повезло, продолжаю получать исключения.
Используйте это:
TimeSpan.Parse(yourTimeZoneString.TrimStart('+'));
Это «+», которого TimeSpan.Parse() не понимает. Если вы просто обрежете ведущий «+» из строки, он будет работать нормально.
TimeSpan.Parse()
Вы можете использовать метод TimeSpan.Parse, он будет принимать строковые значения из вашего примера: http://msdn.microsoft.com/en-us/library/se73z7b9.aspx Единственная проблема заключается в том, что я не уверен, что он примет знак "+", однако это очень легко удалите его с помощью String.Replace.
Удалите знаки + перед анализом.Это работает для меня:
var l = new List<string>(){"+10:30" , "+04:50" , "-10:20"}; foreach(var ts in l) { Console.WriteLine(TimeSpan.Parse(ts.Replace("+","")).ToString()); }