我有这段代码:
var test = TimeSpan.MinValue;
var t = TimeSpan.TryParseExact(
"03:01 PM",
"hh:mm tt",
CultureInfo.InvariantCulture, out test);
t
显示为false。我确定我错过了一些东西,我只是想不出来!
答案 0 :(得分:3)
这是你的字符串中的AM / PM指示符。它不应该存在。
TimeSpan
表示持续时间。
答案 1 :(得分:3)
将其更改为DateTime并且它将起作用,timepan是持续时间,而不是解析日期
var test = DateTime.MinValue;
var t = DateTime.TryParseExact("03:01 PM", "hh:mm tt", CultureInfo.CurrentCulture, DateTimeStyles.AssumeLocal, out test);
答案 2 :(得分:3)
时间跨度衡量一段时间。因此AM / PM没有意义,输入或格式字符串不支持。
此MSDN页面详细说明了有效的自定义格式说明符: Custom TimeSpan Format Strings
正如@Austin Salonen在评论中建议的那样,既然您正在尝试获取日期和时间,那么您应该将输入解析为DateTime而不是TimeSpan。