C# 为什么Timespan.TryParseExact没有按预期解析输入?
我有以下代码:C# 为什么Timespan.TryParseExact没有按预期解析输入?,c#,asp.net,C#,Asp.net,我有以下代码: var test = TimeSpan.MinValue; var t = TimeSpan.TryParseExact( "03:01 PM", "hh:mm tt", CultureInfo.InvariantCulture, out test); t显示为false。我肯定我错过了什么,我就是想不出来 它是字符串中的AM/PM指示符。它不应该在那里 TimeSpan表示持续时间。将其更改为DateTime,它就会工作,TimeSpan表示持续时
var test = TimeSpan.MinValue;
var t = TimeSpan.TryParseExact(
"03:01 PM",
"hh:mm tt",
CultureInfo.InvariantCulture, out test);
t
显示为false。我肯定我错过了什么,我就是想不出来 它是字符串中的AM/PM指示符。它不应该在那里
TimeSpan
表示持续时间。将其更改为DateTime,它就会工作,TimeSpan表示持续时间,而不是解析日期
var test = DateTime.MinValue;
var t = DateTime.TryParseExact("03:01 PM", "hh:mm tt", CultureInfo.CurrentCulture, DateTimeStyles.AssumeLocal, out test);
时间跨度衡量的是时间量。因此AM/PM没有意义,并且在输入或格式字符串中不受支持 此MSDN页面详细说明了有效的自定义格式说明符:
正如@Austin Salonen在他的评论中所建议的,既然您试图获取日期和时间,那么您应该将输入解析为DateTime而不是TimeSpan。在不使用TryParseExact的情况下尝试(只需执行ParseExact),看看异常情况是什么样子?在格式字符串中,
tt
是什么意思?您可以链接源吗?嗨,Adam-我收到以下错误:“System.FormatException:输入字符串的格式不正确。”时间跨度度量时间量。因此AM/PM没有任何意义,并且在输入或格式字符串中不受支持。如何txtDate.Text+“”+txtdime.Text
并对其进行解析?