C# 如何将小时、分钟和秒从字符串解析为TimeSpan对象?

C# 如何将小时、分钟和秒从字符串解析为TimeSpan对象?,c#,parsing,timespan,string-formatting,C#,Parsing,Timespan,String Formatting,我通过查询字符串传递一个字符串作为时间单位。但是,当我尝试将字符串解析为时间跨度对象时,我在mscorlib.ni.dll中得到一个System.FormatException',但在我收集的用户代码中没有处理,这意味着我格式化要解析的字符串的方式有问题 if (NavigationContext.QueryString.ContainsKey("workTimeSpanPkr")) { testString = N

我通过查询字符串传递一个字符串作为时间单位。但是,当我尝试将字符串解析为时间跨度对象时,我在mscorlib.ni.dll中得到一个
System.FormatException',但在我收集的用户代码中没有处理,这意味着我格式化要解析的字符串的方式有问题

            if (NavigationContext.QueryString.ContainsKey("workTimeSpanPkr"))
            {
                testString = NavigationContext.QueryString["workTimeSpanPkr"];
                //Assign text box string value to a test time span variable.
                 testTm = TimeSpan.ParseExact(testString, @"hh\ \:\ mm\ \:\ ss", CultureInfo.InvariantCulture);

            }
当我通过调试器运行它时,传递给testString的字符串是:`“00:15:04”``

有人知道解析时、分、秒的正确格式吗

这是我试图解析的值,以及我用来实现这一点的代码:


以下几点对我来说很好:

Console.WriteLine(TimeSpan.ParseExact("00:15:04", @"hh\:mm\:ss", CultureInfo.InvariantCulture, TimeSpanStyles.None));
如果要与
00:15:04
的示例相匹配,应删除格式字符串中的空白


此外,您可能还想阅读

为什么字符串文本(@)上的所有转义序列?听起来解析格式应该是
“hh:mm:ss”
。它真的是这样引用的吗single,double,string,double,single,single,single,single,single,single,single,single-这是不对的,简单的解析你可能只需要使用
TimeSpan.parse
TimeSpan.TryParse
@BradleyDotNET一个常见的错误,DateTime和TimeSpan格式不一样@每天学习新的东西。谢谢你的链接!我最初是在解析一个文本框中输入的实际字符串,这就是为什么上面的格式不起作用。我要传递的新字符串是TimeSpan类型,因此没有出现问题所在的空白。上面的解决方案奏效了,谢谢我重新运行了代码,我再次遇到了格式异常,奇怪。这就是我根据您的示例进行解析的方式:
workTm=TimeSpan.ParseExact(wrkString,@“hh\:mm\:ss”,CultureInfo.InvariantCulture,TimeSpan-style.None)
知道为什么会发生这种情况吗?@BrianJ如果发生了,这意味着您的
wrkString
字符串不是您声称的字符串。发布调试器中字符串的屏幕截图。刚刚添加了一个wrkString值调试器中的屏幕截图。