如何检查 TimeSpan.ParseExact 是否为真

How to check if TimeSpan.ParseExact is true or not

我想检查时间跨度字符串的格式是否正确

intervalString = "23:54:00";
format = "hh\:mm\:ss";
culture = CultureInfo.CurrentCulture;

var reded= TimeSpan.ParseExact(intervalString, "hh\:mm\:ss", CultureInfo.InvariantCulture);

结果是23:54:00

如果我尝试使用 intervalString = "28:54:00"; 我得到一个异常。
如何检查它是否失败并毫无例外地继续我的代码?

改用TimeSpan.TryParseExact()。它将 return 一个 bool 值,指示该值是否已成功解析。

TimeSpan reded;

bool success = TimeSpan.TryParseExact(intervalString, "hh\:mm\:ss",
    CultureInfo.InvariantCulture, out reded);

只需使用专为这种特殊情况设计的 method

var isParsed = TimeSpan.TryParseExact(
    intervalString, 
    "hh\:mm\:ss", 
    CultureInfo.InvariantCulture
    out TimeSpan reded      // it's your parsed value
);

// use reded if isParsed == true