我似乎无法获得适合我的自定义格式TimeSpan.ParseExact():
预期的时间样本:
1:23:45.6
23:45.6
23:45
1:23:45
Run Code Online (Sandbox Code Playgroud)
我正在使用的字符串格式:
string withTenthFormat = @"[%h\:]mm\:ss[\.%f]";
Run Code Online (Sandbox Code Playgroud)
试着有时间和几分之一秒.然而,使用这种格式和CultureInfo.InvariantCulture确实导致a FormatException.我错过了什么?
我不知道能够在自定义格式字符串中指定类似的可选部分.我建议你使用多个格式字符串,并使用TimeSpan.ParseExact带有一系列格式的重载.
string[] formats = { @"h\:mm\:ss\.FFF", @"mm\:ss\.FFF",
@"h\:mm\:ss", @"mm\:ss"};
string[] values = { "1:23:45.6", "23:45.6", "23:45", "1:23:45" };
foreach (string value in values)
{
var parsed = TimeSpan.ParseExact(value, formats,
CultureInfo.InvariantCulture);
Console.WriteLine(parsed);
}
Run Code Online (Sandbox Code Playgroud)
(我用FFF的毫秒符,让你表达"1:23:45.67".还有如果你只是曾经想几百毫秒,F或f将被罚款.)
| 归档时间: |
|
| 查看次数: |
673 次 |
| 最近记录: |